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实现购物小球抛物线的方法实例
Nov 22 Vue.js
实用的 vue tags 创建缓存导航的过程实现
Dec 03 Vue.js
浅谈Vue开发人员的7个最好的VSCode扩展
Jan 20 Vue.js
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 Vue.js
vue 使用饿了么UI仿写teambition的筛选功能
Mar 01 Vue.js
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
vue中axios封装使用的完整教程
Mar 03 Vue.js
如何让vue长列表快速加载
Mar 29 Vue.js
开发一个封装iframe的vue组件
Mar 29 Vue.js
Vue自定义铃声提示音组件的实现
Jan 22 Vue.js
vue实现拖拽交换位置
Apr 07 Vue.js
vue postcss-px2rem 自适应布局
May 15 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 实用代码收集
2010/01/22 PHP
ini_set的用法介绍
2014/01/07 PHP
php通过ksort()函数给关联数组按照键排序的方法
2015/03/18 PHP
PHP使用ODBC连接数据库的方法
2015/07/18 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
2013/03/21 Javascript
JavaScript操作XML文件之XML读取方法
2015/06/09 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
JavaScript解八皇后问题的方法总结
2016/06/12 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
详解vue axios中文文档
2017/09/12 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
2018/11/06 Javascript
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
2020/09/01 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
2020/09/04 Javascript
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python+微信接口实现运维报警
2016/08/27 Python
Python调用C++,通过Pybind11制作Python接口
2018/10/16 Python
python实现简易动态时钟
2018/11/19 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
薇诺娜官方网上商城:专注敏感肌肤
2017/05/25 全球购物
意大利体育用品和运动服网上商店:Maxi Sport
2019/09/14 全球购物
澳大利亚领先的亚麻品牌:Bed Threads
2019/12/16 全球购物
会计电算化专业毕业生推荐信
2013/12/24 职场文书
外企求职信范文分享
2013/12/31 职场文书
大学旷课检讨书
2014/01/28 职场文书
恋恋笔记本观后感
2015/06/16 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android