vue中vuex添加Logger插件

vue中的vuex是一个全局的公共仓库,用来保存我们各个组件共用的一些数据

但是我们在像vuex通过mutations保存数据时,并不知道数据变更的情况,除非我们在需要的组件中监听对应的vuex数据。

当然了,万物都有解决方案,vuex提供了一种插件机制,其中内置了一种logger插件。

作用如下:Vuex 自带一个日志插件用于一般的调试,生成状态快照,对比出改变前后不同的值。

注:logger 插件会生成状态快照,所以仅在开发环境使用

来看下最简单的使用方案:(index.js)

import Vue from "vue";
import Vuex from "vuex";
import createLogger from "vuex/dist/logger"; // 修改日志
import state from "./state";
import * as actions from "./actions";
import * as mutations from "./mutations";

Vue.use(Vuex);

const debug = process.env.NODE_ENV !== "production"; // 开发环境中为true,否则为false

export default new Vuex.Store({
    state,
    actions,
    mutations,
    plugins: debug ? [createLogger()] : [] // 开发环境下显示vuex的状态修改
});

因为该插件只是在开发环境下使用,这里我们定义变量来判断是开发环境还是生产环境。

然后通过plugins变量,通过三目来判断是否要启动插件。

当我们通过mutations保存数据的时候,会显示当前执行的mutations方法,这里的savePath就是其中的一个方法,prev会列出state中所有执行此方法前的值,mutation中会列出当前方法以及传递的参数,next会列出state中执行此方法后的值。

这样我们在日常开发中就可以作调试。

当然了,createLogger函数还有几个配置项:

const logger = createLogger({
  collapsed: false, // 自动展开记录的 mutation
  filter (mutation, stateBefore, stateAfter) {
    // 若 mutation 需要被记录,就让它返回 true 即可
    // 顺便,`mutation` 是个 { type, payload } 对象
    return mutation.type !== "aBlacklistedMutation"
  },
  transformer (state) {
    // 在开始记录之前转换状态
    // 例如,只返回指定的子树
    return state.subTree
  },
  mutationTransformer (mutation) {
    // mutation 按照 { type, payload } 格式记录
    // 我们可以按任意方式格式化
    return mutation.type
  },
  logger: console, // 自定义 console 实现,默认为 `console`
})

以上就是简单的实现vuex本地开发日志,方便调试,如果需要进一步的实现,可以参考下vuex官网

附上地址:vuex插件官网地址

如有问题,请指出,接收批评。

个人微信公众号:

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坏丶毛病

很庆幸此文有幸对您有帮助 ~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值