博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实例演示vuex模块化和命名空间
阅读量:5740 次
发布时间:2019-06-18

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

一个简单的实例演示vuex模块化和命名空间

因为Vuex Store是全局注册的,不利于较大的项目,引入模块分离业务状态和方法,引入命名空间解决不同模块内名称冲突的问题。(如有理解的错误或不足之处,欢迎留言纠错。)

首先建立一个模块 ./store/modules/sample.js

import SampleAPI from '@/api/sample-api-proxy.js'import { _AjaxUrl } from '@/store/constants'const state = { all: []}const mutations = { resolve (state, payload) { for (let item of payload) { state.all.push(item) } }}const getters = { allstr (state) { return state.join(',') }}const actions = { async init ({commit,state}, pid) { await SampleAPI.get(_AjaxUrl + '/api/game/all', params: {pid}).then((res) => { state.all = res.all commit('resolve', res.data) }) }}export default { namespaced: true, state, mutations, getters, actions}复制代码

./store/index.js 注入模块

import Vuex from 'vuex'import sample_module from './modules/sample'import other_module from './modules/other'export default new Vuex.Store({ //全局Store对象 mutations, actions, state, //模块 modules: {  sample: sample_module, other: other_module }})复制代码

启动程序(main.js)中注册 store 到根组件

import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)new Vue({ el: '#app', data() { return { rootParam: 'test' } }, store, router, template: '
', components: { Home }})复制代码

页面组件(./components/sample.vue)中声明并调用

复制代码

推荐使用对象展开运算符将 mapMutations,mapGetters,mapActions,mapState 混入到页面组件,页面仅用于交互体验,不要参杂过多的业务逻辑和状态

通过 createNamespacedHelpers 映射到命名空间

项目结构:

├── index.html├── main.js├── api│ ├── sample-api-proxy.js│ └── ...├── components│ ├── sample.vue│ └── ...└── store ├── index.js ├── actions.js ├── mutations.js ├── state.js └── modules ├── sample.js └── other.js复制代码

本次给大家推荐一个最后给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。 对web开发技术感兴趣的同学,欢迎加入Q群:864305860,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。 最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。

转载于:https://juejin.im/post/5bb3556e5188255c63761a3b

你可能感兴趣的文章
C#新功能--命名参数与可选参数
查看>>
strtok和strtok_r
查看>>
维辰超市:借助云商城成功转型新零售
查看>>
web.xml中<load-on-start>n</load-on-satrt>作用
查看>>
【算法】CRF
查看>>
windows 8 微软拼音输入法
查看>>
Windows UI风格的设计(7)
查看>>
SQL中使用WITH AS提高性能 使用公用表表达式(CTE)简化嵌套SQL
查看>>
oracle 强行杀掉一个用户连接
查看>>
Git提交本地库代码到远程服务器的操作
查看>>
mysql中主外键关系
查看>>
我的友情链接
查看>>
让你快速上手的Glide4.x教程
查看>>
浮动和清除(闭合)浮动
查看>>
微信小程序注册流程
查看>>
LR录制脚本时IE打不开的原因
查看>>
微博自动化测试
查看>>
Sublime Text 2.0.2,Build 2221注册码
查看>>
js scroll事件
查看>>
最长递增子序列 动态规划
查看>>