博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记录vuex module 模块化分割
阅读量:7144 次
发布时间:2019-06-29

本文共 2409 字,大约阅读时间需要 8 分钟。

参考,加深下vuex的学习。

随着项目的复杂度增大,为了方便管理vuex,一般会将其按功能分割成不同的模块,方便日后管理,先看下整体的目录结构:

目录结构

clipboard.png

store里面暂时弄了commonshop两个模块,每个模块拥有自己的 statemutationactiongetter

模块代码示例

先列下shop模块代码:

state.js

export default {  module: "shop",  name: "shop模块"};

mutation-types.js

export const SET_MODULE = "SET_MODULE";export const SET_NAME = "SET_NAME";

mutations.js

import * as types from "./mutation-types";export default {  [types.SET_MODULE](state, data) {    state.module = data;  },  [types.SET_NAME](state, data) {    state.name = data;  }};

getters.js

export default {  module: state => state.module,  name: state => state.name};

actions.js

import * as types from "./mutation-types";export default {  shopAction({ commit }, params) {    commit(types.SET_MODULE, params.module);    commit(types.SET_NAME, params.name);  }};

index.js

import state from "./state";import mutations from "./mutations";import getters from "./getters";import actions from "./actions";export default {  namespaced: true,//增加命名空间  state,  getters,  mutations,  actions};

store index.js

import Vue from "vue";import Vuex from "vuex";import common from "./common";import shop from "./shop";import createLogger from "vuex/dist/logger";Vue.use(Vuex);const debug = process.env.NODE_ENV !== "production";export default new Vuex.Store({  modules: {    common,    shop  },  strict: debug,  plugins: debug ? [createLogger()] : []});

使用

mapGetters

computed: {    ...mapGetters("shop", {      shopModule: "module",      shopName: "name"    })}

mapMutations

...mapMutations("shop", {      setShopName: "SET_NAME",      setShopModule: "SET_MODULE"})

mapActions

...mapActions("shop", ["shopAction"])//使用shopAction:this.shopAction(params)

在线预览:

弄了个可以跑的小demo,方便大家查看效果和代码(自备梯子,不然打不开

在线预览效果

vuex module 模块化

demo代码

小技巧

建议大家开发中开启vuex的debug,不合理的修改state数据都会有警告,而且可以很直观的看到store数据的变化过程,详见上面store index.js

结尾

写的不太好,大家见谅,看demo比较直观,配合

转载地址:http://qswgl.baihongyu.com/

你可能感兴趣的文章
函数调用过程栈帧变化详解
查看>>
Android项目实战(三十二):圆角对话框Dialog
查看>>
Word或Excel里画柱状图和折线图组合体
查看>>
[TypeScript] Create a fluent API using TypeScript classes
查看>>
秒杀多线程
查看>>
[原]win10下编译lua5.3.4
查看>>
spring List,Set,Map,Properties,array的配置文件注入方式
查看>>
Fireworks层与蒙版的概念和用法
查看>>
常用gcc选项
查看>>
C语言 · 色盲的民主
查看>>
[ci]持续集成系列
查看>>
sparkr脚本
查看>>
VS Code 使用小技巧
查看>>
python 函数
查看>>
Quartz最佳实践
查看>>
Android ContentProvider、ContentResolver和ContentObserver的使用
查看>>
分割字符串
查看>>
cordova与ios native code交互的原理
查看>>
ios多线程操作(四)—— GCD核心概念
查看>>
springboot+swagger集成
查看>>