大图APP
大图APP
  • 发布:2020-10-08 19:50
  • 更新:2022-03-18 15:12
  • 阅读:5786

nvue如何使用正确的使用vuex

分类:nvue

刚接触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)

运行结果如下:

我发这个提示并不是纯粹的吐槽官方,同时也提供了解决方法!

0 关注 分享

要回复文章请先登录注册

YyJj123123

YyJj123123

那nvue界面使用vuex呢?https://ask.dcloud.net.cn/question/141498,只能拿到状态,不能调用mutations的方法
2022-03-18 15:12
liaol

liaol

经过测试,无法在js文件中获取store里面state的值(通过引入import store from '@/store/index.js';,然后调用store.state.属性),获得值还是初始化state的值。但是在.nvue和.vue页面获取的值是正常。
2021-04-22 17:10