vuex Module将 store 分割成模块的操作


Posted in Vue.js onDecember 07, 2020

由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。

为了解决以上问题,Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割:

const moduleA = {
 state: () => ({ ... }),
 mutations: { ... },
 actions: { ... },
 getters: { ... }
}
 
const moduleB = {
 state: () => ({ ... }),
 mutations: { ... },
 actions: { ... }
}
 
const store = new Vuex.Store({
 modules: {
 a: moduleA,
 b: moduleB
 }
})
 
store.state.a // -> moduleA 的状态
store.state.b // -> moduleB 的状态

补充知识:vuex实现模块化分割,在不同类别的文件中放置对应的数据及操作

目录结构为

store文件夹下有index.js 、modules文件夹,在modules文件夹下是你的模块,最好通过功能命名

一级目录:store

一级目录下文件:index.js

二级目录:modules

三级目录demo

三级目录下文件demo.js

三级目录下文件getter.js

三级目录下文件mutations.js

三级目录下文件 state,js

各文件的内容为

一级目录下index.js

import Vue from 'vue'
import Vuex from 'vuex'
import demo from './modules/demo/demo.js';
Vue.use(Vuex);
const $store = new Vuex.Store({
modules: {


demo

}
});
export default $store;

三级目录下demo.js

import state from './state.js';
import mutations from './mutations.js';
// 按需要导入
// import getters from './getters.js';
// import actions from './actions.js';

export default{
// 将导入的文件暴露出去
 state,
 mutations
}

三级目录其他文件

export default{}

最后在main.js中挂载

import Vue from 'vue'
import App from './App'
import router from './router'
import { RouterMount } from 'uni-simple-router'
//引入vuex
import store from './store'
//把vuex定义成全局组件
Vue.prototype.$store = store

Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
 store,
  ...App
})
app.$mount();

以上这篇vuex Module将 store 分割成模块就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Vue.js 相关文章推荐
使用vue编写h5公众号跳转小程序的实现代码
Nov 27 Vue.js
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
Dec 02 Vue.js
vue使用echarts图表自适应的几种解决方案
Dec 04 Vue.js
vue3中轻松实现switch功能组件的全过程
Jan 07 Vue.js
Vue中ref和$refs的介绍以及使用方法示例
Jan 11 Vue.js
Vue实现多页签组件
Jan 14 Vue.js
vue keep-alive的简单总结
Jan 25 Vue.js
Vue项目打包部署到apache服务器的方法步骤
Feb 01 Vue.js
如何在 Vue 中使用 JSX
Feb 14 Vue.js
Vue多选列表组件深入详解
Mar 02 Vue.js
vue项目支付功能代码详解
Feb 18 Vue.js
ant design vue的form表单取值方法
Jun 01 Vue.js
浅谈Vue使用Elementui修改默认的最快方法
Dec 05 #Vue.js
vue+element_ui上传文件,并传递额外参数操作
Dec 05 #Vue.js
解决vue下载后台传过来的乱码流的问题
Dec 05 #Vue.js
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
Dec 04 #Vue.js
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 #Vue.js
vue使用echarts图表自适应的几种解决方案
Dec 04 #Vue.js
vue-calendar-component 封装多日期选择组件的实例代码
Dec 04 #Vue.js
You might like
检查php文件中是否含有bom的函数
2012/05/31 PHP
php selectradio和checkbox默认选择的实现方法详解
2013/06/29 PHP
微信公众平台开发实现2048游戏的方法
2015/04/15 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
jQuery 中关于CSS操作部分使用说明
2007/06/10 Javascript
jquery命令汇总,方便使用jquery的朋友
2012/06/26 Javascript
子页向父页传值示例
2013/11/27 Javascript
红米手机抢购的js代码
2014/03/10 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
2016/12/03 Javascript
微信小程序实现运动步数排行功能(可删除)
2018/07/05 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
Python实现CET查分的方法
2015/03/10 Python
python 回调函数和回调方法的实现分析
2016/03/23 Python
利用Python读取文件的四种不同方法比对
2017/05/18 Python
《Python学习手册》学习总结
2018/01/17 Python
Python使用装饰器模拟用户登陆验证功能示例
2018/08/24 Python
python批量获取html内body内容的实例
2019/01/02 Python
Python中请不要再用re.compile了
2019/06/30 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
解决jupyter notebook 前面书写后面内容消失的问题
2020/04/13 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
夏尔巴人登珠峰品牌:Sherpa Adventure Gear
2018/02/08 全球购物
澳大利亚美容产品及化妆品在线:Activeskin
2020/06/03 全球购物
中学生评语大全
2014/04/18 职场文书
文体活动总结
2015/02/04 职场文书
2015年社区党务工作总结
2015/04/21 职场文书
2015年教学管理工作总结
2015/05/20 职场文书
公司管理制度范本
2015/08/03 职场文书
用python修改excel表某一列内容的操作方法
2021/06/11 Python
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android