|
uni-app的Storage在不同端的实现不同:
- H5端为localStorage,浏览器限制5M大小,是缓存概念,可能会被清理
- App端为原生的plus.storage,无大小限制,不是缓存,是持久化的
- 各个小程序端为其自带的storage api,数据存储生命周期跟小程序本身一致,即除用户主动删除或超过一定时间被自动清理,否则数据都一直可用。
- 微信小程序单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。
- 支付宝小程序单条数据转换成字符串后,字符串长度最大200*1024。同一个支付宝用户,同一个小程序缓存总上限为10MB。
- 百度、字节跳动小程序文档未说明大小限制
- 非App平台清空Storage会导致uni.getSystemInfo获取到的deviceId改变
具体对于本地缓存的使用比较简单,自己可以参考下官网文档使用就行
接下来主要针对vuex状态管理器的心得讲解
话不多说,来人,上源码
- import Vue from 'vue'
- import Vuex from 'vuex'
- Vue.use(Vuex)
- const store = new Vuex.Store({
- state: {
- a1:'',//变量1
- a2:'',//变量2(不需要更新的值不用定义mutations方法)
- a3:{},//变量3(更新的值需要二次处理)
- },
- mutations: {
- setVuexData2(state,data){
- state.a2 = data;
- },
- setVuexData3(state,data){
- state.a3 = data;
- }
- },
- actions:{
- actionsSetVuexData3({commit},data){
- return new Promise((resolve, reject) => {
- /*二次处理*/
- commit("setVuexData3", data);
- resolve();
- });
- }
- }
- })
- export default store
- **使用方法**
- 在main.js文件中引入
- import store from './store'
- 把store注册到vue实例上面
- const app = new Vue({
- store,
- ...App
- })
- **页面引用**
- //引入vuex
- import {mapState,mapMutations} from 'vuex';
- //提取store.state定义的变量,使用方式this.a1;
- computed: {
- ...mapState(['a1'])
- },
- //更新值的有两种方式
- //方式一:(通过mapMutations取到vuex里面定义的函数,这个必须放在methods里面,并且是最上面的位置,避免下面自定义的方法无法使用该函数)
- methods: {
- ...mapMutations(['setVuexData2']),
- 自定义方法(){
- this.setVuexData2()
- }
- }
- //方式二:(此方法使用的情况相对比较少,方式一足够满足大部分业务需求)
- let data={}
- this.$store.dispatch('actionsSetVuexData3',data)
- **js文件内部使用**
- 单独引入文件 import store from "@/store/index.js";
- js文件内部使用 store.state.a1
- js文件内部更新 store.commit('setVuexData2','')
复制代码 具体用法上面有注释,不清楚的可以评论区回复
首先在根目录创建个store目录,新建store.js,把上面代码从**使用方法**以上全部复制黏贴,完事
在很长的分割线下面泡着一杯茶,欢迎评论区讨论交流技术
|
|