美文网首页前端开发那些事儿
vue中vuex添加Logger插件

vue中vuex添加Logger插件

作者: 坏丶毛病 | 来源:发表于2020-11-26 10:12 被阅读0次

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变量,通过三目来判断是否要启动插件。

image

当我们通过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插件官网地址

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

相关文章

  • vue中vuex添加Logger插件

    vue中的vuex是一个全局的公共仓库,用来保存我们各个组件共用的一些数据 但是我们在像vuex通过mutatio...

  • 优雅注册按需加载的插件(个人笔记)

    本文来自:优雅注册插件 插件通常用来为 Vue 添加全局功能。像常用的 vue-router、vuex 在使用时都...

  • Vuex 的基本使用

    添加 vuex 的依赖 vue 中配置 vuex 打开 main.js 使用 vuex main.js 中的代码 ...

  • Vuex笔记

    Vuex 安装插件 Vue use(Vuex) 创建对象 module是模块的意思,为什么在Vuex中我们要使用模...

  • 如何开发和发布一个Vue插件

    Vue 项目开发过程中,经常用到插件,比如原生插件 vue-router 、 vuex ,还有 element-u...

  • Vuex 原理

    1、Vue.use(Vuex):将Vuex 应用到Vue中 use是一个自定义插件,这个插件里有一个固定方法ins...

  • vuex-router-sync如何使用

    简单来讲vuex-router-sync插件就是将vue-router的状态同步到vuex中 一、安装 npm下载...

  • Vuex 总结

    1. vuex简介 vuex是专门用来管理vue.js应用程序中状态的一个vue插件。他的作用是将应用中的所有状态...

  • VueX--VUE核心插件

    使用VueX方法 1.安装vuex模块 npm install vuex --save 2.作为插件使用 Vue....

  • vuex 的学习

    yarn add vuex 添加 vuex 的依赖vuex 引入方式和 vue-router 一样

网友评论

    本文标题:vue中vuex添加Logger插件

    本文链接:https://www.haomeiwen.com/subject/mldaiktx.html