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 相关文章推荐
JS IE和FF兼容性问题汇总
Feb 09 Javascript
javascript EXCEL 操作类代码
Jul 30 Javascript
JavaScript类和继承 constructor属性
Mar 04 Javascript
Function.prototype.apply()与Function.prototype.call()小结
Apr 27 Javascript
JS实现获取当前URL和来源URL的方法
Aug 24 Javascript
jquery获取下拉框中的循环值
Feb 08 Javascript
vue实现动态数据绑定
Apr 28 Javascript
详解angular中的作用域及继承
May 31 Javascript
js实现图片粘贴上传到服务器并展示的实例
Nov 08 Javascript
layui-laydate时间日历控件使用方法详解
Nov 15 Javascript
vue路由 遍历生成复数router-link的例子
Oct 30 Javascript
vue修改Element的el-table样式的4种方法
Sep 17 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
虫族 ZERG 概述
2020/03/14 星际争霸
PHP用mysql数据库存储session的代码
2010/03/05 PHP
PHP开发中四种查询返回结果分析
2011/01/02 PHP
分析PHP中单双引号的误区和双引号小隐患
2016/07/19 PHP
一个JS小玩意 几个属性相加不能超过一个特定值.
2009/09/29 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
三个js循环的关键字示例(for与while)
2016/02/16 Javascript
Bootstrap表单布局
2016/07/19 Javascript
JS前端笔试题分析
2016/12/19 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
2017/12/08 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
Vue函数式组件的应用实例详解
2019/08/30 Javascript
javascript实现弹幕墙效果
2019/11/28 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
Python常用模块用法分析
2014/09/08 Python
python数据处理实战(必看篇)
2017/06/11 Python
python实现单向链表详解
2018/02/08 Python
Python面向对象程序设计多继承和多态用法示例
2019/04/08 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
如何更换python默认编辑器的背景色
2020/08/10 Python
python使用建议技巧分享(三)
2020/08/18 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
2020/09/30 Python
里程积分管理买卖交换平台:Points.com
2017/01/13 全球购物
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
JAVA中的关键字有什么特点
2014/03/07 面试题
程序员机试试题汇总
2012/03/07 面试题
介绍一下OSI七层模型
2012/07/03 面试题
2015社区个人工作总结范文
2015/05/13 职场文书
党务工作者主要事迹材料
2015/11/03 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
PHP判断是否是json字符串
2021/04/01 PHP
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs