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 相关文章推荐
让firefox支持IE的一些方法的javascript扩展函数代码
Jan 02 Javascript
JQuery 获得绝对,相对位置的坐标方法
Feb 09 Javascript
javascript开发技术大全 第4章 直接量与字符集
Jul 03 Javascript
jquery(live)中File input的change方法只起一次作用的解决办法
Oct 21 Javascript
jQuery中校验时间格式的正则表达式小结
Sep 22 Javascript
webpack中引用jquery的简单实现
Jun 08 Javascript
ajax异步请求详解
Jan 06 Javascript
bootstrap-table组合表头的实现方法
Sep 07 Javascript
javascript函数的节流[throttle]与防抖[debounce]
Nov 15 Javascript
vue-router启用history模式下的开发及非根目录部署方法
Dec 23 Javascript
layer弹出层扩展主题的方法
Sep 11 Javascript
jquery插件实现图片悬浮
Apr 16 jQuery
使用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
在WINDOWS中设置计划任务执行PHP文件的方法
2011/12/19 PHP
PHPEXCEL 使用小记
2013/01/06 PHP
PHP 读取Postgresql中的数组
2013/04/14 PHP
php使用array_search函数实现数组查找的方法
2015/06/12 PHP
php实现的验证码文件类实例
2015/06/18 PHP
Laravel框架源码解析之模型Model原理与用法解析
2020/05/14 PHP
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
动态加载js和css(外部文件)
2013/04/17 Javascript
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
jQuery中ready事件用法实例
2015/01/19 Javascript
JS判断是否长按某一键的方法
2016/03/02 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
2016/09/25 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
2017/08/16 Javascript
js尾调用优化的实现
2019/05/23 Javascript
vue中改变滚动条样式的方法
2020/03/03 Javascript
Python利用turtle库绘制彩虹代码示例
2017/12/20 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
用Eclipse写python程序
2018/02/10 Python
浅谈Series和DataFrame中的sort_index方法
2018/06/07 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
解决python测试opencv时imread导致的错误问题
2019/01/26 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
python使用for...else跳出双层嵌套循环的方法实例
2020/05/17 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
2020/05/29 Python
python 中的9个实用技巧,助你提高开发效率
2020/08/30 Python
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
法院信息化建设方案
2014/05/21 职场文书
创业计划书之牛肉汤快餐店
2019/10/08 职场文书
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL