Vuex到底怎么用?!

简介: Vuex的用法

大家先看一下vuex的基本结构:


export default new Vuex.Store({
  state: {
  user:{
      name:'clying'
  }
  },
  getters: {
  },
  mutations: {
  },
  actions: {
  }
})


如何读取user里面的name?


在前天之前,我都是这样使用的:this.$store.state.user.name

如果你也是这样使用的,那你和我一样,都OUT了!!!


vuex的getters是用来读取数据的!

vuex的mutations和actions是用来更改数据的,一个是异步,一个是同步修改。

之前我也只是了解这么多,但是!BUT!当我在写这篇文章的时候,发现之前的我也只是纸上谈兵。


通过getters来读取数据是没有问题的,对于上面那张图主要是讲的是数据共享(将组件获取到的信息赋值给user,其他组件可以通过getters可以获取)的问题。以前我是这样赋值的:


this.$store.user = JSON.parse(JSON.stringify(user))


emmmm,虽然知道了json格式的转换,但是依旧没用意识到vuex的强大!

好好看上面的那张图,vuex通过dispatch('方法名',参数)去调用actions里面的方法,actions通过commit去调用mutations里面的方法,在mutations里面对store里面的变量赋值,之后写入getters。组件通过访问getters里面的方法获得共享的数据。这才是vuex真正的数据赋值读取!也就是上图全是英文的单向数据流事件。

以下是一个简单的示例:


//组件内调用接口后获得的数据data存到store里的user
//赋值组件
this.$store.dispatch("UPDATE_USER", data);  //1.触发actions,UPDATE_USER方法名
//store
export default new Vuex.Store({
    state:{
        user:{}
    },
    getters:{
        user:user => state.user;        //4.getters对外暴露,让组件读取
    },
    mutations:{
        UPDATE_USER_MU:(state,userInfo) => {
            state.user=userInfo;                    //3.在此真正修改state里面user的值
        }
    },
    actions:{         
        UPDATE_USER:({commit},userInfo) => {
            commit('UPDATE_USER_MU',userInfo);      //2.commit触发mutatios
        }
    }
})
//其他组件
cosnolse.log(this.$store.getters.user)      //5.读取vuex里面的值


看到这,深有体悟的就是仔细看文档emmmm。。。小伙伴们一起加油!!!


作者:ClyingDeng

链接:https://juejin.cn/post/6844904001427734542

来源:稀土掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

目录
相关文章
|
1月前
|
JavaScript 前端开发 数据管理
vue2知识点:理解vuex、安装vuex、搭建vuex环境
vue2知识点:理解vuex、安装vuex、搭建vuex环境
32 0
|
3月前
|
JavaScript
VueX用法快速回顾(适用于有基础的同学)
【8月更文挑战第20天】VueX用法快速回顾(适用于有基础的同学)
39 1
|
6月前
|
存储 JSON 资源调度
vue3怎么使用i18n
vue3怎么使用i18n
266 5
|
6月前
|
XML JavaScript 前端开发
Vue3 项目中怎么使用 jsx——易懂
Vue3 项目中怎么使用 jsx——易懂
46 0
|
6月前
|
存储 JavaScript 前端开发
搞懂Vue一篇文章就够了
搞懂Vue一篇文章就够了
47 0
|
6月前
(学习笔记)抛弃 Vuex,使用 Pinia
(学习笔记)抛弃 Vuex,使用 Pinia
66 1
|
11月前
|
存储 JavaScript 前端开发
vuex入门
vuex入门
60 0
|
前端开发
前端学习笔记202304学习笔记第十一天-vue3.0-了解vuex的概念和好处
前端学习笔记202304学习笔记第十一天-vue3.0-了解vuex的概念和好处
65 0
|
前端开发
前端学习笔记202304学习笔记第十一天-vue3.0-了解vuex的概念和好处
前端学习笔记202304学习笔记第十一天-vue3.0-了解vuex的概念和好处
53 0