vuex 中插件的编写案例解析


Posted in Javascript onJune 10, 2019

一、官方文档

1、第一步

const myPlugin = store => {
 // 当 store 初始化后调用
 store.subscribe((mutation, state) => {
 // 每次 mutation 之后调用
 // mutation 的格式为 { type, payload }
 });
};

2、第二步

const store = new Vuex.Store({
 // ...
 plugins: [myPlugin]
});

二、编写一个打印日志的插件

1、函数的书写

import _ from 'lodash';
function logger() {
 return function(store) {
 let prevState = store.state;
 store.subscribe((mutations, state) => {
  console.log('prevState', prevState);
  console.log(mutations);
  console.log('currentState', state);
  prevState = _.cloneDeep(state);
 });
 };
}

2、使用

export default new Vuex.Store({
 modules: {
 ...
 },
 strict: true,
 plugins: process.NODE_ENV === 'production' ? [] : [logger()]
});

三、 vuex 数据持久化

1、函数的书写

function vuexLocal() {
 return function(store) {
 const local = JSON.parse(localStorage.getItem('myvuex')) || store.state;
 store.replaceState(local);
 store.subscribe((mutations, state) => {
  const newLocal = _.cloneDeep(state);
  sessionStorage.setItem('myvuex', JSON.stringify(newLocal));
 });
 };
}

2、使用

export default new Vuex.Store({
 modules: {
 ...
 },
 strict: true,
 plugins: process.NODE_ENV === 'production' ? [vuexLocal()] : [logger(), vuexLocal()]
});

3、类似的第三方库

1. vuex-persistedstate

2. vuex-persist

总结

以上所述是小编给大家介绍的vuex 中插件的编写案例解析,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
在b/s开发中经常用到的javaScript技术
Aug 23 Javascript
JavaScript 计算当天是本年本月的第几周
Mar 22 Javascript
Jquery Ajax请求代码(2)
Jan 07 Javascript
客户端js判断文件类型和文件大小即限制上传大小
Nov 20 Javascript
Eclipse去除js(JavaScript)验证错误
Feb 11 Javascript
setInterval计时器不准的问题解决方法
May 08 Javascript
js实现仿QQ秀换装效果的方法
Mar 04 Javascript
JavaScript原生对象之Number对象的属性和方法详解
Mar 13 Javascript
AngularJS入门教程之控制器详解
Jul 27 Javascript
JS实现的简易拖放效果示例
Dec 29 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
Dec 03 Javascript
详解Vue的异步更新实现原理
Dec 22 Vue.js
使用webpack搭建vue项目及注意事项
Jun 10 #Javascript
详解iview的checkbox多选框全选时校验问题
Jun 10 #Javascript
前端路由&webpack基础配置详解
Jun 10 #Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
Jun 10 #Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
Jun 10 #Javascript
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
Jun 10 #Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
Jun 10 #Javascript
You might like
fleaphp crud操作之findByField函数的使用方法
2011/04/23 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
JScript内置对象Array中元素的删除方法
2007/03/08 Javascript
jquery获取下拉列表的值为null的解决方法
2011/03/18 Javascript
js字符编码函数区别分析
2011/12/28 Javascript
Javascript查询DBpedia小应用实例学习
2013/03/07 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
深入理解Ajax的get和post请求
2016/06/02 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
requireJS模块化实现返回顶部功能的方法详解
2017/10/16 Javascript
vue的一个分页组件的示例代码
2017/12/25 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
JS+CSS实现3D切割轮播图
2020/03/21 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
微信小程序反编译的实现
2020/12/10 Javascript
Python中关于字符串对象的一些基础知识
2015/04/08 Python
基于python的七种经典排序算法(推荐)
2016/12/08 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
python+pyqt5实现KFC点餐收银系统
2019/01/24 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
基于python中__add__函数的用法
2019/11/25 Python
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
家长会学生家长演讲稿
2013/12/29 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
政协会议宣传标语
2014/10/09 职场文书
三下乡个人总结
2015/03/04 职场文书
军训新闻稿范文
2015/07/17 职场文书
学生会工作感言
2015/08/07 职场文书