uni-app 之 数据缓存
<p style="text-align: center"><span style="font-size: 18pt">uni-app 之 数据缓存</span></p><p> 铛铛铛~~~之前有写过一个navagator路由的博客,今天就分享一下关于数据缓存的把</p>
<p> <span style="font-size: 15px"><strong>1.uni.setStorage(OBJECT) 与 uni.getStorage(OBJECT) 这两个是异步缓存,简单说就是将数据放到本地缓存指定的key中,一个存一个取罢了</strong></span></p>
<p> uni.setStorage(OBJECT) :将数据缓存在本地缓存中指定的key中,会覆盖掉原来该key中的内容,这是一个异步接口。(</p>
<p> <code class="ಠhighlight-container">参数名 类型 是否必填 说明</code></p>
<p><code class="ಠhighlight-container"> key String 是 本地缓存中的指定的 key </code></p>
<p><code class="ಠhighlight-container"> data Object<span class="token operator">/String 是 需要存储的内容 </span></code></p>
<p><code class="ಠhighlight-container"><span class="token operator"> success Function 否 接口调用成功的回调函数 </span></code></p>
<p><code class="ಠhighlight-container"><span class="token operator"> fail Function 否 接口调用失败的回调函数 </span></code></p>
<p><code class="ಠhighlight-container"><span class="token operator"> complete Function 否 接口调用结束的回调函数(调用成功、失败都会执行)</span></code></p>
<p> )</p>
<p> uni.getStorage(OBJECT) : 从本地缓存中异步获取指定key对应的内容(</p>
<p> <code class="ಠhighlight-container">参数名 类型 是否必填 说明</code></p>
<p><code class="ಠhighlight-container"> key String 是 本地缓存中的指定的</code><code class="ಠhighlight-container">key </code></p>
<p><code class="ಠhighlight-container"> success Function 是 接口调用的回调函数</code><code class="ಠhighlight-container">res <span class="token operator">= <span class="token punctuation">{data<span class="token punctuation">: key对应的内容<span class="token punctuation">} </span></span></span></span></code></p>
<p><code class="ಠhighlight-container"><span class="token operator"><span class="token punctuation"><span class="token punctuation"><span class="token punctuation"> fail Function 否 接口调用失败的回调函数 </span></span></span></span></code></p>
<p><code class="ಠhighlight-container"><span class="token operator"><span class="token punctuation"><span class="token punctuation"><span class="token punctuation"> complete Function 否 接口调用结束的回调函数(调用成功、失败都会执行)</span></span></span></span></code></p>
<p> )</p>
<p> 那个例子跟大伙说一下,最近公司做项目,涉及到了一个存放地址的, 将地址的信息缓存到本地指定的URL 这个key中 进行存数据与取数据的操作,废话不多说,上代码~~</p>
<div class="cnblogs_Highlighter">
<pre class="brush:html;gutter:true;">//这是我定义的url
let url = `/pages/newHouse/NewHouseDetail?id=${id}`
//URL具体数据
console.log(url) <span style="color: rgba(51, 153, 102, 1)">///pages/newHouse/NewHouseDetail?id=43
</span></pre>
</div>
<p> 下一步进行将数据缓存在本地 </p>
<div class="cnblogs_Highlighter">
<pre class="brush:html;gutter:true;">//这是我设置的缓存信息 将url数据缓存到本地
uni.setStorage({
key: 'url_key', ------ key的名称是 url
data: url, ------ data中存放的是我的url地址
success: function () { ------ 成功之后的回调函数 uni.navigateTo我要跳转的页面<br><br> console.log(1111) ------缓存成功 打印1111并且跳转页面
// 存储成功后跳转房源详情页
uni.navigateTo({
url
})
}
})
</pre>
</div>
<p> 下一步读取缓存在本地数据</p>
<div class="cnblogs_Highlighter">
<pre class="brush:html;gutter:true;">uni.getStorage({
key: 'url_key',
success: function (res) {
console.log('这是获取key中的内容',res)
}
}) //<span style="color: rgba(51, 153, 102, 1)">这是获取key中的内容 {data: "/pages/newHouse/NewHouseDetail?id=41", errMsg: "getStorage:ok"}
</span></pre>
</div>
<p> 绿色标记为我在本地缓存中获取到的数据,res.data 就是我们需要的url地址了,如果需要直接获取就可以了,这一步骤就给大家展示了uni.setStorage(OBJECT) 与 uni.getStorage(OBJECT) 整体过程</p>
<p><strong><span style="font-size: 15px">2.uni.setStorageStnc(KEY,DATA) 与 uni.getStorage(KEY) 其实这个跟第一个基本上是没有区别的,只不过是一个异步一个同步罢了,参数说明及写法展示给大家</span></strong></p>
<p> uni.setStorageStnc(KEY,DATA) 将data存储在本地缓存中个指定的key中,会覆盖相同key中对应的内容,这是一个同步接口 </p>
<p><code class="ಠhighlight-container"> 参数名 类型 是否必填 说明</code></p>
<p><code class="ಠhighlight-container"> key String 是 本地缓存中的指定的 key</code></p>
<p><code class="ಠhighlight-container"> data Any <span class="token operator"> 是 需要存储的内容,只支持原生类型、及能够通过 JSON.stringify 序列化的对象</span></code></p>
<p><span class="token operator"> 还是以地址url为例,以上个例子为基础来说 </span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:html;gutter:true;"> uni.setStorageSync('url_key', 'url'); <span style="color: rgba(51, 153, 102, 1)">将我的url信息存放到 url_key 中</span></pre>
</div>
<p><span class="token operator"><span class="token punctuation"><span class="token function"><span class="token punctuation"><span class="token string"><span class="token punctuation"><span class="token string"><span class="token punctuation"><span class="token punctuation"> uni.getStorageStnc(KEY) 从本地缓存中同步获取指定 key 对应的内容。</span></span></span></span></span></span></span></span></span></p>
<p><span class="token operator"><span class="token punctuation"><span class="token function"><span class="token punctuation"><span class="token string"><span class="token punctuation"><span class="token string"><span class="token punctuation"><span class="token punctuation"> </span></span></span></span></span></span></span></span></span><code class="ಠhighlight-container">参数名 类型 是否必填 说明</code></p>
<p><code class="ಠhighlight-container"> key String 是 本地缓存中的指定的 key</code></p>
<p><span class="token operator"><span class="token punctuation"><span class="token function"><span class="token punctuation"><span class="token string"><span class="token punctuation"><span class="token string"><span class="token punctuation"><span class="token punctuation"> 获取同步的缓存key中地址信息 </span></span></span></span></span></span></span></span></span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:html;gutter:true;"> const value = uni.getStorageSync('url_key'); <span style="color: rgba(51, 153, 102, 1)">//将我从key中获取的信息赋值给value
</span></pre>
</div>
<p><span style="font-size: 15px"><strong>3.uni.removeStorage(OBJECT) 与 uni.removeStorageSync(KEY) 这两个都是从本地缓存中移除指定的key 与上面的也是一样样样的~~~ 前面是异步的后面是同步的 异步为例~~~~</strong></span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:html;gutter:true;">uni.getStorage({
key:'url',
success:function(res){
console.log(res) <span style="color: rgba(51, 153, 102, 1)">------打印异步中获取的信息</span>
uni.removeStorage({
key:'url',
success:function() {
console.log(' 移除成功') <span style="color: rgba(51, 153, 102, 1)">-----获取成功后移除key 中的内容</span>
}
})
}
})
</pre>
</div>
<p> <img src="https://img2018.cnblogs.com/blog/1664944/201907/1664944-20190705203747358-1405413795.png"> 这是我打印出来的数据 通过了一个点击事件,这是显示我移除成功了,然后的~~~~等等等 等你在点击的时候会发现他并不打印了 也许你会因此疑惑 那是因为我已经将这个key所对应的数据移除了呀,所以当然是什么都不打印的啦~~~</p>
<p><strong><span style="font-size: 15px">4.uni.clearStorage() 与 uni.clearStorageSync() 这两个都是清理本地数据的缓存 当然啦 还是一个异步一个同步的 这个跟上一个其实是一样的 就是说这个吧 emmmmm 清除了你所有的本地数据 上一个只是清除了你本地指定key中的内容</span></strong></p>
<p><strong><span style="font-size: 15px"> </span></strong>写法就是直接emmmm 写!!! uni.clearStorage()和uni.clearStorageSync() 哈哈哈哈哈</p>
<p>我要是呢,写的不好,写的不足,还希望大家指出,相信我,我会改正的 !!嗯嗯嗯嗯嗯</p><br><br>
来源:https://www.cnblogs.com/gongliying/p/11134499.html
頁:
[1]