vuex-pathify:
通过路径语法和工具函数简化Vuex整体开发体验
基于对vuex进行封装的的vuex助手语法插件

安装步骤:

npm i vuex-pathify --save

配置

pathify的核心机制是路径语法,配置的目的是告知pathify使用什么样的命名方案将路径映射到存储成员上## 配置默认值
export default {mapping: 'standard', // 路径映射方案deep: 0 | 1 | 2 // state子属性访问模式 0: 不允许, 1: 允许访问现有 2: 允许新建子属性
}

使用步骤:
1.新建pathify.js代码如下:

//下载之后引入
import pathify from 'vuex-pathify'// 配置项
pathify.options.mapping = 'simple'
pathify.options.deep = 1
pathify.debug() // 输出当前配置export default pathify

2.在store.js中导入该配置文件
vuex的store.js导入

import Vue from 'vue'
import Vuex from 'vuex'
import pathify from './pathify' // 注意引入的文件就是步骤1的文件(不要直接引入Pathify,除非你想使用默认配置)
import root from './root' // 根模块
import app from './modules/app' // app在pathify后引入,否则可能导致配置无效Vue.use(Vuex)const store = new Vuex.Store({strict: true,//是否开启严格模式,默认是falseplugins: [pathify.plugin], // 配置pathify插件...root,modules: {app}
})console.log(store) // 输出当前store详情export default store

3.检查配置

3.1 pathify.debug()使用pathify.debug() 输出当前配置.查看结果是否与配置一致(主要查看Mapping (simple), mutations  : value)特别注意: 配置未生效的情况下会使用默认配置,如果发现修改配置后,debug的输出没有符合预期,那么应该某个地方出现了问题3.2 console.log(store)直接在控制台打印出store,可以更加详细地看到store的成员是否符合配置

英文地址->可以翻译为中文参考
链接地址:https://davestewart.github.io/vuex-pathify/#/api/paths

使用get()工具函数(非实例的)生成参数的get方法()

computed: {rootValue: get('rootValue') // 获取根属性moduleRootValue: get('moduleName/moduleRootValue') // 获取模块根属性rootValueChild: get('moduleName/moduleRootValue@rootValueChild') // 获取模块根属性的子属性z: get('moduleName/moduleRootValue@rootValueChild.x.y.z') //  获取模块根属性的子属性的后代属性
}

通配符模式

computed: {...get('*') // 生成所有根属性的属性名和其get方法...get('moduleName/*') // 获取模块所有的根属性的属性名和其get方法...get('moduleName/object@*') // 获取模块根属性上所有子属性属性名和其get方法
}

数组模式/对象模式

computed: {...get('app', ['age','car']),...get('app', {altCar: 'car',altMsg: 'msg'})
}

使用实例的set()函数改变状态

store.set('a', val) // 设置根属性的值
store.set('a/b', val) // 设置模块根属性的值
store.set('a/b@c', val) // 设置模块根属性的子属性的值

直接调用非SET_*开头的mutation/action

//action异步
//mutation同步

store.set('a/INCREMENT_A!')  // mutation
store.set('a/loadValue!') // action

使用sync()工具函数(非实例的)同步函数生成属性的get+set方法

computed: {value: sync('module/object@value'),c: sync('module/object@a.b.c'),...sync('module', [ // 数组模式'value','str']),...sync('module', { // 对象模式,别名模式altValue: 'value',altStr: 'str'})
}

API

Pathify有两种语法类型,用于处理非get / set命名的自定义。
## 直接语法
store.set('update!', items) // 调用名为update的action/mutation## 直接同步,并且使用管道符|
computed: {items: sync('items|update!')
}

存储助手make工具函数

getters
const getters = { ...make.getters(state), // 生成state的getters items: state => { // 覆盖默认items的getter ... }, filteredItems: (state, getters) => { // 新的getter return ... } }mutations
const mutations = make.mutations(state) // 生成所有state的mutationsactions
const actions = { ...make.actions('items'), // 只生成items的action loadItems({dispatch}){ dispatch('setItems', data); // 派发生成的items的action } }部分生成
const state = { items: [], status: { code: '', time: '' } }const mutations = make.mutations('items status') // 字符串形式const mutations = make.mutations(['items', 'status']) // 数组形式

以上就是vuex-pathify的核心内容,其简化了开发流程,消除重复代码,是一个非常好的开发工具库,强烈推荐使用!

使用插件

//获取vuex的某个变量,此处默认进行了模块具名化
module:{
state:{
openid:0000
}
}
console.log(this.$store.module.state.openid)
//使用插件(就是如此简单)
console.log(this.$store.get('module/openid')

vuex-pathify入门相关推荐

  1. vuex 基本入门和使用(二)

    vuex 基本入门和使用(二) vuex 版本为^2.3.1,按照我自己的理解来整理vuex. 关于 state 每个vuex 应用只有一个 store 实例,所以使用起来不会太复杂,对于定位错误状态 ...

  2. vue2 + vue-router + vuex + iview 入门项目

    简单的vue2 + vue-router + vuex + iview 入门项目,一个移动端平台的简易考试系统.灵感来源于近期工作项目中开发的一套考试平台系统.欢迎大家来issues指出错误共同进步. ...

  3. Vuex从入门到入门

    Vuex 是什么? 官方是这么说的:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 不懂? ...

  4. vuex 基本入门和使用(一)

    vuex 版本为^2.3.1,按照我自己的理解来整理vuex. vuex 是什么 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规 ...

  5. Vue.js实战之Vuex的入门教程

    在 Vue.js 的项目中,如果项目结构简单, 父子组件之间的数据传递可以使用  props 或者 $emit 等方式. 但是如果是大型项目,很多时候都需要在子组件之间传递数据,使用之前的方式就不太方 ...

  6. Vuex初级入门及简单案例

    1.为什么要使用Vuex? (1)方便所有组件共享信息,方便不同组件共享信息. (2)某个组件需要修改状态和需求. 2.状态有哪些? (1)组件内部定义的data状态(通过组件内部修改) (2)组件外 ...

  7. vuex简单入门:singer实例创建以及读写全过程

    Vuex 是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 原理图  对于原理图 ...

  8. vue3.0+vuex+typescript 入门项目描述

    先写仓库地址:https://gitee.com/orderkk/vuex-vue3.0-ts.git 项目目录介绍: 目录介绍: assets: 存放静态文件资源 components: 存放组件文 ...

  9. Vuex从入门到实战(三)——使用Mutations变更state中的数据

    上篇讲到可以通过this.$store.state.count或者...mapState(['count'])的方式可以拿到我们在state中存储的count值,那么如何修改这个值呢? 很多人都会想到 ...

  10. 1-5 Vuex学习(案例篇)

    创建项目 CSDN笔记地址:https://blog.csdn.net/weixin_43742708/article/details/114667391 素材地址:蓝奏云 => https:/ ...

最新文章

  1. 招聘webgis开发经理和程序员
  2. ssm使用全注解实现增删改查案例——applicationContext-servlet.xml
  3. pygame写游戏,常用代码记录
  4. elementui的tree组件页面显示不出数据_只要10分钟,教你配置出炫酷的数据可视化大屏...
  5. 制度化规范化标准化精细化_管理技巧:为什么说企业制度化管理势在必行?好处太多了...
  6. 代码规范以及单元测试项目
  7. 查询数据库中表的空间使用情况
  8. DeepFake技术--win7下faceswap环境配置(一)(二)(三)
  9. Typora下载连接及使用教学
  10. 如何使用FlashgameMaster修改游戏
  11. 蔡勒公式与Python
  12. HTML编辑器-HTML网页表单可视化在线编辑器插件大全
  13. C++哈利波特代码(下)
  14. Android CPU 双核,为何安卓八核CPU不如苹果双核?
  15. 【Python+QGIS将地名批量标注于高德地图】
  16. 20210409因为内存条的兼容问题引起的编译aosp10莫名的异常
  17. 数据库——ltrim()和rtrim()函数
  18. docker flannel 工作原理/模型 SNAT规则优化 3
  19. 数据挖掘的步骤有哪些?
  20. 计算机音乐谱 青花瓷,周杰伦经典曲目—钢琴谱:青花瓷(四音轨版)——五线谱.pdf...

热门文章

  1. SolidWorks二次开发-打开、新建、保存文档
  2. RBM到MPS的转换
  3. APP上架到各大应用商店
  4. c#实现虚拟光驱--应用层(简单涉及驱动部分)
  5. 牛顿迭代法求一个数的立方根、平方根
  6. 乌克兰电网遭遇黑客攻击 有何警示意义?
  7. MySQL中存储引擎之间的对比
  8. Python机器学习之旅-1.聚类_KMeans
  9. Docker: 容器与镜像
  10. 绝地求生无盘服务器,无盘网吧里绝地求生进不去?他们是这么解决的