vuex入门浅谈

  vuex是专门为 Vue.js 设计的状态管理库,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
官网:https://vuex.vuejs.org/zh/

简单上手

1. 安装

利用npm指令

npm install vuex --save

2. 创建

  1. 在项目的src目录下新建一个目录store

  2. 在该目录下新建一个index.js文件

  3. 在index.js中引入vue和vuex

  4. 创建Vuex.Store实例保存到变量store中

  5. 最后使用eaport default导出store

  6. 在main.js中引入该文件

  7. 在文件中添加import store from './store'

  8. 在vue实例全局中引入store对象

3. 核心概念

vuex共有五个核心概念:State Getter Mutations Actions Module

state

vuex中的数据源,我们需要保存的数据就保存在这里,可以在页面通过 this.$store.state来获取我们定义的数据;

在这里插入图片描述
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/img_convert/9a121a272d3c8a4ca155c16737d22a51.png#pic_center

getters

Getter相当于vue中的computed计算属性,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算,这里我们可以通过定义vuex的Getter来获取,Getters 可以用于监听、state中的值的变化,返回计算后的结果,这里我们修改Hello World.vue文件如下:
在这里插入图片描述再修改index.js文件如下,其中getters中的getStateCount方法接收一个参数state,这个参数就是我们用来保存数据的那个对象;
在这里插入图片描述
在这里插入图片描述

Mutations

数据我们在页面是获取到了,但是如果我们需要修改count值怎么办?如果需要修改store中的值唯一的方法就是提交mutation来修改,我们现在Hello World.vue文件中添加两个按钮,一个加1,一个减1;这里我们点击按钮调用addFun(执行加的方法)和reductionFun(执行减法的方法),然后在里面直接提交mutations中的方法修改值:
在这里插入图片描述修改index.js文件,添加mutations,在mutations中定义两个函数,用来对count加1和减1,这里定义的两个方法就是上面commit提交的两个方法如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/img_convert/2196649f745c30dfb23bd02dfad8a7d0.png#pic_center

Actions

我们看到,当点击三次后值从2变成了-1;页面上的值是改变了;我们达到了修改store中状态值的目的,但是,官方并不介意我们这样直接去修改store里面的值,而是让我们去提交一个actions,在actions中提交mutation再去修改状态值,接下来我们修改index.js文件,先定义actions提交mutation的函数:
在这里插入图片描述
在这里插入图片描述好了,我们这里已经实现了一个基本的vuex修改状态值的完整流程,如果我们需要指定加减的数值,那么我们直接传入dispatch中的第二个参数,然后在actions中的对应函数中接受参数在传递给mutations中的函数进行计算:
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/img_convert/5898d98819e847a410e8aba6e1e6ebe7.png#pic_center

mapState、mapGetters、mapActions

如果我们不喜欢这种在页面上使用“this. s t r o e . s t a t e . c o u n t ” 和 “ t h i s . stroe.state.count”和“this. stroe.state.countthis.store.dispatch(‘funName’)”这种很长的写法,那么我们可以使用mapState、mapGetters、mapActions就不会这么麻烦了;

我们修改Hello World.vue文件如下:
在这里插入图片描述正常显示,效果是一样的,我们就可以不再使用很长的写法来调用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苦夏木禾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值