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 相关文章推荐
Prototype Selector对象学习
Jul 23 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
Jun 11 Javascript
script的async属性以非阻塞的模式加载脚本
Jan 15 Javascript
js 判断计算字符串长度/判断空的简单方法
Aug 05 Javascript
当jQuery1.7遇上focus方法的问题
Jan 26 Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
Jun 07 Javascript
jQuery解析返回的xml和json方法详解
Jan 05 Javascript
利用JS hash制作单页Web应用的方法详解
Oct 10 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
Mar 03 Javascript
Vue和React有哪些区别
Sep 12 Javascript
原生js实现购物车功能
Sep 23 Javascript
vue v-model的用法解析
Oct 19 Javascript
使用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
网站当前的在线人数
2006/10/09 PHP
php 操作excel文件的方法小结
2009/12/31 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
2014/06/23 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
php观察者模式应用场景实例详解
2017/02/03 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
easyui datagrid 键盘上下控制选中行示例
2014/03/31 Javascript
javasctipt如何显示几分钟前、几天前等
2014/04/30 Javascript
轻量级javascript 框架Backbone使用指南
2015/07/24 Javascript
jquery实现触发时更新下拉列表内容的方法
2015/12/02 Javascript
jQuery实现根据滚动条位置加载相应内容功能
2016/07/18 Javascript
关于JSON与JSONP简单总结
2016/08/16 Javascript
angular之ng-template模板加载
2017/11/09 Javascript
基于dataset的使用和图片延时加载的实现方法
2017/12/11 Javascript
Node.js操作系统OS模块用法分析
2019/01/04 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
原生js拖拽功能制作滑动条实例代码
2021/02/05 Javascript
python使用MySQLdb访问mysql数据库的方法
2015/08/03 Python
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
python实现zabbix发送短信脚本
2018/09/17 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
python字符串格式化方式解析
2019/10/19 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
html5需遵循的6个设计原则
2016/04/27 HTML / CSS
英国家庭和商业健身器材购物网站:Fitness Options
2018/07/05 全球购物
Madda Fella官网:美国冒险家服装品牌
2020/01/16 全球购物
机械专业应届生求职信
2013/12/12 职场文书
大学生自我鉴定
2013/12/16 职场文书
留学经费担保书
2014/05/12 职场文书
2014老师三严三实对照检查材料思想汇报
2014/09/18 职场文书
2014年前台个人工作总结
2014/11/14 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
投诉书范文
2015/07/02 职场文书
学习委员竞选稿
2015/11/20 职场文书