刚接触nuve的 新手想知道如何在 nvue 中使用vuex,大家肯定上官网搜索 方法,并且对官方人员发的文章深信不疑,过度依赖官方,嗯 我也是是这样的,导致了至始至终都是从自己身上找问题,结果焦躁一整天得不到解决!!
官方人员并不是神,也是有血有肉的人,程序开发过程难免会出现一些BUG,文章也是!!!
比如这个:https://ask.dcloud.net.cn/article/35021
我不止一次的提出改文章的问题,并且页得到官方的认可!!
这篇文章教你 在 uni-app 项目根目录下新建 store 目录,在 store 目录下创建 index.js 定义状态值
const store = new Vuex.Store({
state: {
login: false,
token: '',
avatarUrl: '',
userName: ''
},
mutations: {
login(state, provider) {
console.log(state)
console.log(provider)
state.login = true;
state.token = provider.token;
state.userName = provider.userName;
state.avatarUrl = provider.avatarUrl;
},
logout(state) {
state.login = false;
state.token = '';
state.userName = '';
state.avatarUrl = '';
}
}
})
然后,需要在 main.js 挂载 Vuex
import store from './store'
Vue.prototype.$store = store
如果你信了,直接复制粘贴,程序启动就报错了,不信你可以试试!!
其实正确的写法应该是这样:
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
state: {
value:''
},
mutations: {
setWebset(state, value) {
state.value = value
},
},
actions: {
},
modules: {
}
})
export default store
然后,需要在 main.js 挂载 Vuex
import store from './store'
Vue.prototype.$store = store
这样写保你不报错!!
下面是测试赋值和取值的方法!
你可以在App.vue中赋值测试
onLaunch: function() {
this.$store.commit("setWebset", '赋值');
},
然后在其他页面 取值
console.log(this.$store.state.value)
运行结果如下:
我发这个提示并不是纯粹的吐槽官方,同时也提供了解决方法!