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 相关文章推荐
Javascript学习笔记5 类和对象
Jan 11 Javascript
Three.js快速入门教程
Sep 09 Javascript
微信小程序 图片边框解决方法
Jan 16 Javascript
Javascript之深入浅出prototype
Feb 06 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
Mar 09 Javascript
vue组件Prop传递数据的实现示例
Aug 17 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
Nov 02 Javascript
vue写h5页面的方法总结
Feb 12 Javascript
从理论角度讨论JavaScript闭包
Apr 03 Javascript
轻松学习JavaScript函数中的 Rest 参数
May 30 Javascript
小程序实现按下录音松开识别语音
Nov 22 Javascript
js实现无缝轮播图插件封装
Jul 31 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
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
php 字符串函数收集
2010/03/29 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
WebQQ最新登陆协议的用法
2014/12/22 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
2016/10/11 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
php读取本地json文件的实例
2018/03/07 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
PHP网站常见安全漏洞,及相应防范措施总结
2021/03/01 PHP
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
用Axios Element实现全局的请求loading的方法
2018/03/15 Javascript
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
layui监听下拉选框选中值变化的方法(包含监听普通下拉选框)
2019/09/24 Javascript
零基础写python爬虫之神器正则表达式
2014/11/06 Python
Python中index()和seek()的用法(详解)
2017/04/27 Python
python  logging日志打印过程解析
2019/10/22 Python
微信浏览器取消缓存的方法
2015/03/28 HTML / CSS
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
教师自荐信
2013/12/10 职场文书
煤矿班组长岗位职责
2013/12/29 职场文书
洗煤厂厂长岗位职责
2014/01/03 职场文书
心理健康课教学反思
2014/02/13 职场文书
优秀食品类广告词
2014/03/19 职场文书
日语专业求职信
2014/07/04 职场文书
年终晚会活动方案
2014/08/21 职场文书
如何写股份合作协议书
2014/09/11 职场文书
员工试用期自我评价
2014/09/18 职场文书
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js