uni-app 之 數據緩存
鐺鐺鐺~~~之前有寫過一個navagator路由的博客,今天就分享一下關於數據緩存的把
1.uni.setStorage(OBJECT) 與 uni.getStorage(OBJECT) 這兩個是異步緩存,簡單說就是將數據放到本地緩存指定的key中,一個存一個取罷了
uni.setStorage(OBJECT) :將數據緩存在本地緩存中指定的key中,會覆蓋掉原來該key中的內容,這是一個異步接口。(
參數名 類型 是否必填 說明
key String 是 本地緩存中的指定的 key
data Object/String 是 需要存儲的內容
success Function 否 接口調用成功的回調函數
fail Function 否 接口調用失敗的回調函數
complete Function 否 接口調用結束的回調函數(調用成功、失敗都會執行)
)
uni.getStorage(OBJECT) : 從本地緩存中異步獲取指定key對應的內容(
參數名 類型 是否必填 說明
key String 是 本地緩存中的指定的
key
success Function 是 接口調用的回調函數
res = {data: key對應的內容}
fail Function 否 接口調用失敗的回調函數
complete Function 否 接口調用結束的回調函數(調用成功、失敗都會執行)
)
那個例子跟大伙說一下,最近公司做項目,涉及到了一個存放地址的, 將地址的信息緩存到本地指定的URL 這個key中 進行存數據與取數據的操作,廢話不多說,上代碼~~
//這是我定義的url
let url = `/pages/newHouse/NewHouseDetail?id=${id}`
//URL具體數據
console.log(url) // /pages/newHouse/NewHouseDetail?id=43
下一步進行將數據緩存在本地
//這是我設置的緩存信息 將url數據緩存到本地 uni.setStorage({ key: 'url_key', ------ key的名稱是 url data: url, ------ data中存放的是我的url地址 success: function () { ------ 成功之后的回調函數 uni.navigateTo我要跳轉的頁面
console.log(1111) ------ 緩存成功 打印1111並且跳轉頁面 // 存儲成功后跳轉房源詳情頁 uni.navigateTo({ url }) } })
下一步讀取緩存在本地數據
uni.getStorage({
key: 'url_key',
success: function (res) {
console.log('這是獲取key中的內容',res)
}
}) //這是獲取key中的內容 {data: "/pages/newHouse/NewHouseDetail?id=41", errMsg: "getStorage:ok"}
綠色標記為我在本地緩存中獲取到的數據,res.data 就是我們需要的url地址了,如果需要直接獲取就可以了,這一步驟就給大家展示了uni.setStorage(OBJECT) 與 uni.getStorage(OBJECT) 整體過程
2.uni.setStorageStnc(KEY,DATA) 與 uni.getStorage(KEY) 其實這個跟第一個基本上是沒有區別的,只不過是一個異步一個同步罷了,參數說明及寫法展示給大家
uni.setStorageStnc(KEY,DATA) 將data存儲在本地緩存中個指定的key中,會覆蓋相同key中對應的內容,這是一個同步接口
參數名 類型 是否必填 說明
key String 是 本地緩存中的指定的 key
data Any 是 需要存儲的內容,只支持原生類型、及能夠通過 JSON.stringify 序列化的對象
還是以地址url為例,以上個例子為基礎來說
uni.setStorageSync('url_key', 'url'); 將我的url信息存放到 url_key 中
uni.getStorageStnc(KEY) 從本地緩存中同步獲取指定 key 對應的內容。
參數名 類型 是否必填 說明
key String 是 本地緩存中的指定的 key
獲取同步的緩存key中地址信息
const value = uni.getStorageSync('url_key'); //將我從key中獲取的信息賦值給value
3.uni.removeStorage(OBJECT) 與 uni.removeStorageSync(KEY) 這兩個都是從本地緩存中移除指定的key 與上面的也是一樣樣樣的~~~ 前面是異步的后面是同步的 異步為例~~~~
uni.getStorage({ key:'url', success:function(res){ console.log(res) ------打印異步中獲取的信息 uni.removeStorage({ key:'url', success:function() { console.log(' 移除成功') -----獲取成功后移除key 中的內容 } }) } })
這是我打印出來的數據 通過了一個點擊事件,這是顯示我移除成功了,然后的~~~~等等等 等你在點擊的時候會發現他並不打印了 也許你會因此疑惑 那是因為我已經將這個key所對應的數據移除了呀,所以當然是什么都不打印的啦~~~
4.uni.clearStorage() 與 uni.clearStorageSync() 這兩個都是清理本地數據的緩存 當然啦 還是一個異步一個同步的 這個跟上一個其實是一樣的 就是說這個吧 emmmmm 清除了你所有的本地數據 上一個只是清除了你本地指定key中的內容
寫法就是直接emmmm 寫!!! uni.clearStorage()和uni.clearStorageSync() 哈哈哈哈哈
我要是呢,寫的不好,寫的不足,還希望大家指出,相信我,我會改正的 !!嗯嗯嗯嗯嗯