vuex数据持续化(Vuex数据持久化实现的思路与代码)
类别:编程学习 浏览量:1325
时间:2022-04-01 01:11:57 vuex数据持续化
Vuex数据持久化实现的思路与代码什么是vuex
vuex :是一个专为vue.js开发的状态管理器,采用集中式存储的所有组件状态
五个属性: state、getters、mutations、actions、module
基本使用:
新建store.js文件,最后在main.js中引入,并挂载到实列上
import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const state = {} const getters = {} const mutations = {} const actions = {} export default new Vuex.Store({ state, getters, mutations, actions })
state属性: 存放状态,例如你要存放的数据
getters: 类似于共享属性,可以通过this.$store.getters来获取存放在state里面的数据
mutations: 唯一能改变state的状态就是通过提交mutations来改变,this.$store.commit()
actions: 一步的mutations,可以通过dispatch来分发从而改变state
Vuex 数据持久化
众所周知,Vuex 的数据是存储在内存中的,刷新一下网页这些数据就会丢失。而有些数据我们希望刷新后仍然能够留存,这就需要把数据存储下来。这里就记录一下,使用 localStorage 来持久化 Vuex 中的数据。
实现思路
- 因为 state 中的数据理论上只能通过 mutation 来进行更新,所以可以监听 mutation 事件,在每次事件执行后,将此时整个 state 的数据转为字符串后存储进 localStorage。
- 在页面初始化 state 时,读取 localStorage 值,重新转为 JSON 后,合并进当前 state。
- 这种方法只是一个简单的实现,只适用于简单对象,对复杂对象来说,重新转为 JSON 可能会失去对应的事件和方法,后面可以考虑以其他方式存储。
代码
插件:
export default (options = {}) => { const storage = options.storage || (window && window.localStorage); const key = options.key || "vuex"; // 获取state的值 const getState = (key, storage) => { const value = storage.getItem(key); try { return typeof value !== "undefined" ? JSON.parse(value) : undefined; } catch (err) { console.warn(err); } return undefined; }; // 设置state的值 const setState = (key, state, storage) => storage.setItem(key, JSON.stri.jpg" alt="vuex数据持续化(Vuex数据持久化实现的思路与代码)" border="0" />
调用方式:
import VuexPersist from "@/plugins/VuexPersist"; export default createStore({ plugins: [VuexPersist()], });
总结
到此这篇关于Vuex数据持久化实现的文章就介绍到这了,更多相关Vuex数据持久化内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- vuex原理及使用方法(Vuex状态机的快速了解与实例应用)
- vuex数据持续化(Vuex数据持久化实现的思路与代码)
- vuex中action的值怎么接(vuex中Getter的用法详解)
- vue3.0零基础入门(快速掌握Vue3.0中如何上手Vuex状态管理)
- vue编程加入购物车(vuex实现简单的购物车功能)
- vuex存取修改数据流程(vuex数据持久化的两种实现方案)
- vuex-table行列转换效果(vue3+el-table实现行列转换)
- vue-cli请求数据的方式(vue-cli配置使用Vuex的全过程记录)
- vue中的mapgetter优势(vuex 中辅助函数mapGetters的基本用法详解)
- vuex怎么使用数据(vuex的辅助函数该如何使用)
- 参考文献里期刊名称的写法,你知道吗(参考文献里期刊名称的写法)
- 硕博期刊 SCI SSCI CSSCI分不清 一文带你看懂主流期刊分类(硕博期刊SCISSCI)
- 辱华品牌新百伦官宣新代言人IU,个别粉丝希望get爱豆同款(辱华品牌新百伦官宣新代言人IU)
- 巅峰时期被爆床照,曾被选国民最讨厌女星,IU不为人知的黑历史(巅峰时期被爆床照)
- 每天1万吨牛奶倒进下水道,美国大萧条一幕重现(每天1万吨牛奶倒进下水道)
- 如何看待美国数十万加仑牛奶倒下水道 历史又重演了(如何看待美国数十万加仑牛奶倒下水道)
热门推荐
- python动态数组原理(Python实现的旋转数组功能算法示例)
- jquery ajax的async使用
- 云服务器模式有哪些(私人云服务器用途有哪些?私人云服务器可以做什么?)
- mysql8.0.23.0官方安装手册(MySQL8.0.23安装超详细教程)
- linux用nvm安装nodejs(nodejs管理工具nvm安装过程详解)
- css定位布局讲解(css position定位属性_动力节点Java学院整理)
- 如何用thinkphp框架来写一个网站(php tpl模板引擎定义与使用示例)
- typescript技巧(为什么TypeScript的Enum会出现问题)
- docker配置和管理(Docker 容器监控原理及 cAdvisor的安装与使用说明)
- ubuntu20.04安装启动问题(安装ubuntu18.04报:failed to load ldlinux.c32的问题及解决步骤)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9