功能描述
由于状态零散地分布在许多组件和组件之间的交互中,大型应用复杂度也经常逐渐增长。为了解决这个问题,Vue提供vuex。
本例实现功能描述
本列创建了一个状态,并在另一个组件中查看并修改了状态。
[!TIP|label: 定义storeMessage.js]
我们以基础框架为基础,在src/store文件夹下新建一个storeMessage.js文件
export default ({state: {// 这里放全局参数message: 'Hello!'},mutations: {// 这里是set方法setMessage (state, newValue) {state.message = newValue}},getters: {// 这里是get方法getMessage: state => state.message}})
[!TIP|label: 配置统一状态分组]
找到sys/store/index.js文件,先导入storeMessage文件,再在medules下配置storeMessage
import storeMessage from "./storeMessage";Vue.use(Vuex)export default new Vuex.Store({modules: {common,user,storeMessage}})
[!TIP|label: 定义homeStore.vue]
再在src/views/basic/sys文件夹下新建一个homeStore.vue文件,再为其配置菜单
配置菜单的具体方法见vue方式开发指南-部署与启动里面的菜单路由配置
<template><div><button @click="checkMessage()"> 查看状态 </button><button @click="changeMessage()"> 改变状态 </button><p>{{ msgStore }}</p></div></template><script>export default {name: "homeStore",methods: {checkMessage() {console.log (this.$store.getters.getMessage)},changeMessage() {this.$store.commit('setMessage', '李四');console.log (this.$store.getters.getMessage)}},computed:{msgStore: function () {return this.$store.getters.getMessage}}}</script><style scoped></style>
