Vuex的简单理解

版权声明:转载请注明出处: https://blog.csdn.net/qq_38262910/article/details/86244853

先上图:
在这里插入图片描述
对于上图,我们只需要看实线箭头部分的数据流动即可。其实我们需要做的就是让该数据正常流通即可

1.安装引入

 npm install vuex --save

然后在src目录下新建目录store,store目录下新建文件index.js
在index.js文件里面写入下图代码

在这里插入图片描述
然后再在main.js文件中

import store from './store'

然后在vue实例中注册一下

new Vue({
   store
})

这样就可以了

2.使用

2.1-state
在上一步暴露出来的store对象中写入状态

 state: {
    city: '北京'
  },

然后在一个可以显示出来的页面使用

this.$store.state.city

将state中的数据显示出来
在这里插入图片描述
接下来我们就让点击按钮后,state中的city改变为北京
在这里插入图片描述
1.首先给button按钮一个事件,然后让他执行下面代码

this.$store.dispatch("changeCity","北京");
这步可以简单理解为,点击按钮后,给仓库提交一个动作名为"changeCity"的动作事件,携带的参数是"北京"。

2.在src/store/index.js的state对象后面加上动作事件

actions: {
   changeCity(ctx,city) {
       ctx.commit("changestate",city);
   }
 }

这步可以理解为changeCity这个动作提交一个"changestate"事件,携带的参数是city
在这里插入图片描述
3.在src/store/index.js的actions对象后面加上突变事件

 mutations: {
   changestate(state,city) {
          state.city= city
          .....
    }
 }

这步可以理解为,actions动作提交了一个changestate事件后,我们mutations(突变)拿到该事件并执行

state.city = city

上面代码意思将传过来的city这个参数的数值赋值给state中的city。
这样一来,一个简单的store就完成了
下面测试一下,点击按钮前显示上海
在这里插入图片描述
点击按钮后显示北京
在这里插入图片描述

这样一来,其实这个数据的流向是不是跟最上面的图是一样的呢?

猜你喜欢

转载自blog.csdn.net/qq_38262910/article/details/86244853