1.新建store->index.js文件
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
state: {
/**
* 是否需要强制登录
*/
forcedLogin: false,
hasLogin: false,
userName: "",
test: "",
},
mutations: {
test(state, test) {
state.test = test;
},
login(state, userName) {
state.userName = userName || '新用户';
state.hasLogin = true;
},
logout(state) {
state.userName = "";
state.hasLogin = false;
}
}
})
export default store
2.main.js中注册store

3.在关联的显示页面(main.vue)引用状态变量

4.在变更状态变量的页面(user.vue)引用调用方法

当如上设置后,在user.vue页面点击按钮后,main.vue页面的test值就变成了'hello world'
你可以理解为...mapMutations[xxx]意思是将store中的[]内操作方法引用到了当前页面的methods:{}内,因此用this.test('hello world');就可以在当前页面调用store中的赋值函数

如上图,在store的index.js中,已预先设置好了test调用方法,因此在这里使用赋值时,main.vue绑定了test方法关联的test状态变量,就已经被更改了


本文介绍了如何在Vue项目中使用Vuex的mapState和mapMutations。首先创建store->index.js文件并注册store,然后在main.js中引入。在main.vue组件中引用状态变量,在user.vue组件中通过mapMutations调用store中的方法改变状态。通过示例解释了mapMutations如何将store的方法映射到当前组件的methods中,使得在user.vue中点击按钮能更新main.vue中的test状态变量。
1457

被折叠的 条评论
为什么被折叠?



