成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從微信小程序到鴻蒙JS開(kāi)發(fā)-storage緩存&自動(dòng)登錄

開(kāi)發(fā)
在應(yīng)用開(kāi)發(fā)時(shí),我們常需要將一些數(shù)據(jù)緩存到本地,以提升用戶(hù)體驗(yàn)。比如在一個(gè)電商的app中,如果希望用戶(hù)登錄成功后,下次打開(kāi)app可以自動(dòng)登錄,就需要將用戶(hù)信息存儲(chǔ)到緩存中。

[[383405]]

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

在應(yīng)用開(kāi)發(fā)時(shí),我們常需要將一些數(shù)據(jù)緩存到本地,以提升用戶(hù)體驗(yàn)。比如在一個(gè)電商的app中,如果希望用戶(hù)登錄成功后,下次打開(kāi)app可以自動(dòng)登錄,就需要將用戶(hù)信息存儲(chǔ)到緩存中。

鴻蒙JS開(kāi)發(fā)模式提供了操作數(shù)據(jù)緩存的API,首先需導(dǎo)入storage模塊。

  1. import storage from '@system.storage'

添加緩存的API為storage.set( ),指定key和value,在用戶(hù)登錄成功后將用戶(hù)名和密碼緩存到本地:

  1. // 登錄 
  2.     login() { 
  3.         fetch.fetch({ 
  4.             url: this.url + "/user/login?phone=" + this.phone + "&pwd=" + this.pwd, 
  5.             responseType: "json"
  6.             success: res => { 
  7.                 let data = JSON.parse(res.data); 
  8.                 console.info(JSON.stringify(data)); 
  9.                 if (0 != data.code) { 
  10.                     prompt.showToast({ 
  11.                         message: data.msg, 
  12.                         duration: 3000 
  13.                     }) 
  14.                 } else { 
  15.                     let userInfo = data.data; 
  16.                     ...... 
  17.                     // 寫(xiě)入緩存 
  18.                     storage.set({ 
  19.                         key"userPhone"
  20.                         value: userInfo.mobile 
  21.                     }); 
  22.                     storage.set({ 
  23.                         key"userPwd"
  24.                         value: userInfo.password 
  25.                     }) 
  26.                 } 
  27.             } 
  28.         }) 
  29.     }, 

注意,鴻蒙JS的數(shù)據(jù)緩存API是以key:value進(jìn)行存取的,value只能為string類(lèi)型。如存儲(chǔ)其他類(lèi)型,并不會(huì)失敗而進(jìn)入fail回調(diào),但在使用get( )的時(shí)候會(huì)無(wú)法取到對(duì)應(yīng)value的。

在進(jìn)入app時(shí),便可調(diào)用storage.get( )取出緩存中的用戶(hù)信息,通過(guò)給定key,在success回調(diào)中會(huì)返回對(duì)應(yīng)的value。取到用戶(hù)信息后并調(diào)用登錄方法實(shí)現(xiàn)自動(dòng)登錄功能。

  1. onShow() { 
  2.       // 從其他頁(yè)面跳轉(zhuǎn)回來(lái),清除頁(yè)面棧 
  3.       router.clear(); 
  4.       // 從緩存取用戶(hù)信息,自動(dòng)登錄 
  5.       storage.get({ 
  6.           key"userPhone"
  7.           success: data => { 
  8.               if (data) { 
  9.                   this.phone = data; 
  10.                   storage.get({ 
  11.                       key"userPwd"
  12.                       success: data => { 
  13.                           if (data) { 
  14.                               this.pwd = data; 
  15.                               this.login(); 
  16.                           } 
  17.                       } 
  18.                   }) 
  19.               } 
  20.           } 
  21.       }) 
  22.       // 查詢(xún)購(gòu)物車(chē)數(shù)量 
  23.       if (this.userInfo && this.userInfo.id) { 
  24.           this.countCarts(); 
  25.       } 
  26.   }, 

效果如下:

刪除緩存中數(shù)據(jù)的API為storage.delete( ),指定key即可刪除對(duì)應(yīng)數(shù)據(jù)。此方法在IDE中無(wú)提示(猜測(cè)是和delete關(guān)鍵詞重復(fù)了),但經(jīng)實(shí)驗(yàn)是可以正常使用的。

在用戶(hù)退出登錄后,應(yīng)清除緩存中的用戶(hù)信息。對(duì)應(yīng)方法如下:

  1. // 退出登錄 
  2.   exitLogin() { 
  3.       prompt.showDialog({ 
  4.           title: "提示"
  5.           message: "確認(rèn)退出登錄嗎?"
  6.           buttons: [ 
  7.               { 
  8.                   text: "確定"
  9.                   color: "#E20A0B" 
  10.               }, 
  11.               { 
  12.                   text: "取消"
  13.                   color: "#666666" 
  14.               } 
  15.           ], 
  16.           success: res => { 
  17.               if (res.index == 0) { 
  18.                   ...... 
  19.                   // 刪除緩存中用戶(hù)信息 
  20.                   storage.delete({ 
  21.                       key"userPhone" 
  22.                   }); 
  23.                   storage.delete({ 
  24.                       key"userPwd" 
  25.                   }); 
  26.                   this.userInfo = null
  27.               } 
  28.           } 
  29.       }) 
  30.   } 

退出登錄過(guò)后再次進(jìn)入app,就不會(huì)自動(dòng)登錄了:

此外還有storage.clear( )方法用于清空所有的數(shù)據(jù)緩存。

微信小程序提供了類(lèi)似的操作數(shù)據(jù)緩存的方法,分為同步方法和異步方法,且數(shù)據(jù)的value可為任何能夠通過(guò)JSON.stringify序列化的對(duì)象。因此在從微信小程序切換到鴻蒙JS開(kāi)發(fā)時(shí),在數(shù)據(jù)緩存這里踩了坑。鴻蒙storage的value只能為string,但其提供了文件存儲(chǔ),擁有更強(qiáng)大的數(shù)據(jù)存儲(chǔ)能力。

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
相關(guān)推薦

2021-02-23 12:25:26

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-03-02 09:29:29

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-20 09:52:02

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-23 09:52:42

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-22 14:56:55

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-21 11:09:18

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-23 12:23:57

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-04 13:49:41

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-25 15:13:08

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-05 09:46:16

鴻蒙HarmonyOSjs開(kāi)發(fā)

2021-02-07 09:17:24

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-24 09:36:03

鴻蒙CSS應(yīng)用開(kāi)發(fā)

2017-05-08 15:03:07

微信小程序開(kāi)發(fā)實(shí)戰(zhàn)

2016-11-04 10:49:48

微信小程序

2016-09-27 16:38:24

JavaScript微信Web

2016-09-28 18:10:59

微信程序MINA

2016-09-27 20:36:23

微信HttpWeb

2016-11-04 10:30:17

微信小程序

2018-09-11 10:32:07

云開(kāi)發(fā)小程序開(kāi)發(fā)者

2016-11-07 10:30:07

微信小程序安裝配置
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品欧美乱码久久久久久1区2区 | 亚洲成人久久久 | 免费观看a级毛片在线播放 黄网站免费入口 | 久久久人成影片一区二区三区 | 欧美一级欧美一级在线播放 | 亚洲人成人一区二区在线观看 | 日韩在线精品视频 | 精品久久久久久久 | 欧美偷偷 | 日韩一二三区视频 | 国产一区2区 | www.天天操 | 密色视频 | 国产精品永久免费观看 | 国产成人午夜电影网 | av 一区二区三区 | 亚洲免费观看视频网站 | 琪琪午夜伦伦电影福利片 | 青青草在线视频免费观看 | 亚洲国产18 | 日韩视频精品 | 成年人黄色免费视频 | 国产区在线 | 日韩视频一区二区三区 | 一区在线视频 | 国产韩国精品一区二区三区 | 中文字幕一区二区三区乱码图片 | 亚洲综合在线网 | 中文字幕在线视频免费视频 | 精品国产乱码久久久久久闺蜜 | 一区二区三区在线 | 国产精品久久久久久久7电影 | 午夜男人天堂 | 91xxx在线观看 | 天天操天天干天天爽 | 在线播放第一页 | 午夜国产 | 毛片在线看片 | 国产精品美女久久久久久免费 | 色综合久久天天综合网 | 日韩区|