【UniApp】-uni-app-数据缓存

前言

  • 好,经过上个章节的介绍完毕之后,给大家补充了一下 uni-app-数据传递的内容
  • 那么补充了 uni-app-数据传递的内容之后,这篇文章来给大家介绍一下 uni-app-数据缓存

搭建项目

  • 首先我们还是要先搭建一个项目,这里我就不多说了,大家可以参考上一篇文章
  • 搭建好项目之后,我们就可以开始我们的正文了

步入正题

新增

  • 新增的话,我们可以通过 uni.setStorage(OBJECT) 来进行新增
  • 新增的话,我们可以通过 uni.setStorageSync(KEY,DATA) 来进行新增
  • 两者的区别就是一个是异步,一个是同步,带有 Sync 的就是同步的,不带有 Sync 的就是异步的
  • 两者的参数不一样,一个是传递一个对象,一个是传递两个参数

好了,下面我们来看一下具体的使用, 首先看同步,代码如下:

vue 复制代码
<template>
	<view>
		<text>{{ name }}</text>
		<button type="primary" @click="add">新增</button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				name: "BNTang"
			}
		},
		onLoad() {},
		methods: {
			add() {
				try {
					uni.setStorageSync('name', 'king');
				} catch (e) {
					// error
				}
			}
		}
	}
</script>

运行测试效果:

好了,下面我们来看一下异步,代码如下:

vue 复制代码
add() {
    uni.setStorage({
        key: 'name',
        data: 'hello BNTang',
        success: function() {
            console.log('success');
        }
    });
}

运行测试效果:

获取

  • 获取的话,我们可以通过 uni.getStorage(OBJECT) 来进行获取
  • 获取的话,我们可以通过 uni.getStorageSync(KEY) 来进行获取

看一下具体的使用, 首先看同步,代码如下:

vue 复制代码
<button type="primary" @click="get">获取</button>
vue 复制代码
get() {
    try {
        this.name = uni.getStorageSync('name');
    } catch (e) {
        // error
    }
}

运行测试效果:

来看一下异步,代码如下:

vue 复制代码
get() {
    const that = this
    uni.getStorage({
        key: 'name',
        success: function(res) {
            that.name = res.data
        }
    });
}

运行测试效果:

删除

  • 删除的话,我们可以通过 uni.removeStorage(OBJECT) 来进行删除
  • 删除的话,我们可以通过 uni.removeStorageSync(KEY) 来进行删除

看一下具体的使用, 首先看同步,代码如下:

vue 复制代码
<button type="primary" @click="del">删除</button>
vue 复制代码
del() {
    try {
        uni.removeStorageSync('name');
    } catch (e) {
        // error
    }
}

运行测试效果:

点击删除按钮之后:

异步略过,大家可以自己去试一下。

清空

  • 清空的话,我们可以通过 uni.clearStorage() 来进行清空
  • 清空的话,我们可以通过 uni.clearStorageSync() 来进行清空

看一下具体的使用, 首先看同步,代码如下:

vue 复制代码
<button type="primary" @click="clear">清空</button>
vue 复制代码
clear() {
    try {
        uni.clearStorageSync();
    } catch (e) {
        // error
    }
}
  • 运行测试效果,记得存储点进去之后,再点击清空按钮,这个就不上图片了,大家自己去试一下
  • 异步略过,大家可以自己去试一下

getStorageInfo

再给大家补充一个,getStorageInfo,这个 API 可以获取当前 storage 的相关信息,代码如下:

vue 复制代码
<button type="primary" @click="getStorageInfoFn">getStorageInfo</button>
vue 复制代码
getStorageInfoFn() {
    try {
        const res = uni.getStorageInfoSync();
        
        console.log(res);
        console.log(res.keys);
        console.log(res.currentSize);
        console.log(res.limitSize);
    } catch (e) {
        // error
    }
}

运行输出结果:

  • keys:当前 storage 中所有的 key
  • currentSize:当前占用的空间大小, 单位 kb
  • limitSize:限制的空间大小, 单位 kb
  • 异步略过,大家可以自己去试一下

和 HTML5 的数据缓存是一样的都是放到 Storage 里面的

End

  • 如果你有任何问题或建议,欢迎在下方留言,我会尽快回复
  • 如果你觉得本文对你有帮助,欢迎点赞、收藏,你的支持是我写作的最大动力
相关推荐
狂龙骄子37 分钟前
uniapp圆形时钟
小程序·uniapp·canvas·clock·圆盘时钟
星光一影3 小时前
同城搭子活动组局H5系统源码-伴伴搭子系统源码
vue.js·mysql·php·uniapp
计算机毕设指导62 天前
基于微信小程序的派出所业务管理系统【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·tomcat·uniapp
星光一影3 天前
社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
mysql·微信小程序·小程序·php·uniapp·交友
Rysxt_5 天前
UniApp manifest.json 配置文件完全解析
uniapp·hbuilderx·manifest.json
嘿siri7 天前
自定义app端、小程序端和H5等多端自定义键盘输入框,跟随系统键盘弹出和隐藏
javascript·小程序·uni-app·uniapp
星光一影10 天前
美容/心理咨询/问诊/法律咨询/牙医预约/线上线下预约/牙医行业通用医疗预约咨询小程序
mysql·小程序·vue·php·uniapp
宠友信息13 天前
打造可持续增长的垂直社区:仿小红书平台功能体系与架构深度解析
java·微服务·微信小程序·springboot·uniapp
一点晖光14 天前
微信小程序输入框光标从中间删除跳到最后bug解决
微信小程序·uniapp·ios光标
郑州光合科技余经理21 天前
基于PHP:海外版同城O2O系统多语言源码解决方案
java·开发语言·git·spring cloud·uni-app·php·uniapp