自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

本地?cái)?shù)據(jù)存儲(chǔ)與緩存操作:玩轉(zhuǎn) uni.setStorageSync 全家桶!

開發(fā)
在前端項(xiàng)目中,我們常常需要將一些數(shù)據(jù)保存在本地,在 UniApp 中,使用起來(lái)非常簡(jiǎn)單,但做好封裝和規(guī)范化使用才是關(guān)鍵!

在前端項(xiàng)目中,我們常常需要將一些數(shù)據(jù)保存在本地,比如:

  • 用戶 Token / 登錄信息
  • 頁(yè)面緩存數(shù)據(jù)
  • 用戶行為記錄或設(shè)置項(xiàng)

在 UniApp 中,使用起來(lái)非常簡(jiǎn)單,但做好封裝和規(guī)范化使用才是關(guān)鍵!

本地緩存的核心 API

UniApp 提供同步和異步兩套 API:

(1) 同步 API(推薦在大多數(shù)場(chǎng)景使用)

方法名

功能說(shuō)明

uni.setStorageSync(key, data)

存儲(chǔ)數(shù)據(jù)

uni.getStorageSync(key)

獲取數(shù)據(jù)

uni.removeStorageSync(key)

移除某個(gè) key 的數(shù)據(jù)

uni.clearStorageSync()

清空所有本地緩存數(shù)據(jù)

示例:

// 存儲(chǔ)
uni.setStorageSync('token', 'abc123')

// 讀取
const token = uni.getStorageSync('token')

// 刪除
uni.removeStorageSync('token')

// 清空全部
uni.clearStorageSync()

(2) 異步 API(需要回調(diào),不推薦頻繁使用)

uni.setStorage({
  key: 'userInfo',
  data: { name: 'Tom' },
  success() {
    console.log('保存成功')
  }
})

封裝 Storage 工具函數(shù)(推薦實(shí)戰(zhàn))

我們可以封裝一個(gè)通用的 storage.js 工具,統(tǒng)一管理緩存操作,避免硬編碼 key、統(tǒng)一處理 JSON 等數(shù)據(jù)。

utils/storage.js:

// 存儲(chǔ)數(shù)據(jù)
exportfunctionset(key, value) {
try {
    uni.setStorageSync(key, value)
  } catch (e) {
    console.error(`保存失?。?{key}`, e)
  }
}

// 讀取數(shù)據(jù)
exportfunctionget(key, defaultValue = null) {
try {
    const result = uni.getStorageSync(key)
    return result !== '' ? result : defaultValue
  } catch (e) {
    console.error(`讀取失?。?{key}`, e)
    return defaultValue
  }
}

// 刪除指定 key
exportfunctionremove(key) {
try {
    uni.removeStorageSync(key)
  } catch (e) {
    console.error(`刪除失敗:${key}`, e)
  }
}

// 清空所有緩存
exportfunctionclear() {
try {
    uni.clearStorageSync()
  } catch (e) {
    console.error('清空緩存失敗', e)
  }
}

使用方式(統(tǒng)一入口,簡(jiǎn)單明了)

引用:

import * as Storage from '@/utils/storage.js'

使用:

// 保存 Token
Storage.set('token', 'abc123')

// 獲取 Token
const token = Storage.get('token')

// 刪除 Token
Storage.remove('token')

// 清空所有緩存
Storage.clear()

應(yīng)用場(chǎng)景舉例

場(chǎng)景 1:登錄成功后保存用戶信息

// 登錄成功后
Storage.set('userInfo', res.data.user)
Storage.set('token', res.data.token)

場(chǎng)景 2:頁(yè)面加載時(shí)讀取緩存

onLoad() {
  const userInfo = Storage.get('userInfo')
  if (userInfo) {
    this.user = userInfo
  }
}

場(chǎng)景 3:退出登錄時(shí)清除緩存

logout() {
  Storage.clear()
  uni.reLaunch({
    url: '/pages/login/login'
  })
}

小結(jié)

能力點(diǎn)

說(shuō)明

API 掌握

熟練使用 uni.setStorageSync

封裝函數(shù)

實(shí)現(xiàn)通用緩存操作,減少重復(fù)

實(shí)戰(zhàn)場(chǎng)景應(yīng)用

登錄、初始化、退出全流程覆蓋

責(zé)任編輯:趙寧寧 來(lái)源: Ssoul肥魚
相關(guān)推薦

2017-09-13 15:05:10

React前端單元測(cè)試

2017-09-10 17:41:39

React全家桶單元測(cè)試前端測(cè)試

2020-09-27 08:36:21

Python Memcached緩存

2021-08-11 12:07:12

PythonPgSQL數(shù)據(jù)

2020-09-29 08:35:08

MongoDBPython數(shù)據(jù)

2020-09-24 06:49:34

PythonRedis

2024-05-15 09:53:22

2022-07-15 08:45:07

slotVue3

2023-08-11 09:00:00

2020-02-12 13:24:55

UOS操作系統(tǒng)

2018-11-30 09:00:19

html5cssjavascript

2020-11-18 10:18:57

AWS

2023-05-24 12:38:40

2024-06-03 08:29:20

2019-08-16 10:54:03

本地存儲(chǔ)javascripthttp緩存

2015-06-16 14:47:20

云存儲(chǔ)

2023-01-18 16:02:41

ChatGPT

2022-06-08 08:45:46

Redis緩存代碼

2013-07-03 15:11:41

ANdroid
點(diǎn)贊
收藏

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