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 表单输入框不支持focus及blur事件的解决方案
Nov 17 Vue.js
vue-cli4.0多环境配置变量与模式详解
Dec 30 Vue.js
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
Jan 05 Vue.js
vue3.0 自适应不同分辨率电脑的操作
Feb 06 Vue.js
vue-cli中实现响应式布局的方法
Mar 02 Vue.js
vue 数据双向绑定的实现方法
Mar 04 Vue.js
vue3如何优雅的实现移动端登录注册模块
Mar 29 Vue.js
如何用vue实现网页截图你知道吗
Nov 17 Vue.js
vue+elementUI实现表格列的显示与隐藏
Apr 13 Vue.js
如何vue使用el-table遍历循环表头和表体数据
Apr 26 Vue.js
vue postcss-px2rem 自适应布局
May 15 Vue.js
vue如何清除浏览器历史栈
May 25 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里的JS打印函数
2006/10/09 PHP
yii2.0之GridView自定义按钮和链接用法
2014/12/15 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
微信推送功能实现方式图文详解
2019/07/12 PHP
JavaScript高级程序设计
2006/12/29 Javascript
javascript实现根据身份证号读取相关信息
2014/12/17 Javascript
AngularJs IE Compatibility 兼容老版本IE
2016/09/01 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
深入浅析angular和vue还有jquery的区别
2018/08/13 jQuery
vue实现表单录入小案例
2019/09/27 Javascript
Python下Fabric的简单部署方法
2015/07/14 Python
Python实现将Excel转换为json的方法示例
2017/08/05 Python
python实现excel读写数据
2021/03/02 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
pygame游戏之旅 添加碰撞效果的方法
2018/11/20 Python
python实现简单图片物体标注工具
2019/03/18 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
2020/02/29 Python
Python 中由 yield 实现异步操作
2020/05/04 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
Java面试题汇总
2015/12/06 面试题
英语专业学子个人的自我评价
2013/10/02 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
大客户经理岗位职责
2015/04/09 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
小学班主任研修日志
2015/11/13 职场文书
《自己的花是让别人看的》教学反思
2016/02/19 职场文书
Python实现单例模式的5种方法
2021/06/15 Python