vue vuex 挂载_Vue中Vuex的详解与使用(简洁易懂的入门小实例)

本文详细介绍了Vue中Vuex的使用,包括getters的实时监听、mutations的值修改、actions的异步操作,以及辅助函数mapState、mapGetters、mapActions的便利性。通过实例演示了如何在组件中利用Vuex管理状态,提升代码的可维护性。
摘要由CSDN通过智能技术生成

5、getters  =》getters 和 组件的 computed 类似,方便直接生成一些可以直接用的数据。当组装的数据要在多个页面使用时,就可以使用 getters 来做。

注释也写了,getters 可以实时监听state值的变化(最新状态)

我给getters里面获取count值的方法命名为 getCount 并且需要传入 state

那么如何获取 通过 getters 获取 承载变化的 count 的值呢?

this.$store.getters.getCount  具体效果在 第4 栏里面有些,这里就不作重复了。

6、那么, 我们如果想改变 count 的值,应该怎么做呢? 这时候就可以用到  mutations 。

要修改store中的值唯一的方法就是提交mutation来修改,我们现在Hello World.vue文件中添加两个按钮,一个加1,一个减1;

这里我们点击按钮调用add(执行加的方法)和del(执行减法的方法),然后在里面直接提交mutations中的方法修改值:

修改store.js文件,添加mutations,在mutations中定义两个函数,用来对count加1和减1,

这里定义的两个方法就是上面commit提交的两个方法如下:

我们可以将参数传递给mutations中的函数进行计算 这里是 num 。

现在我们看看效果 :

很好,count 数值都发生了改变,我点击了两下,并且 是可以在 Vue Devtools 中的 Vuex 看到过程效果

payload :1 就是数值变化1 type 操作的方法是 addCount 也就是 mutations 根方法

ok!完美。

7、到了 Actions 了

Action 类似于 mutation,不同在于:

Action 提交的是 mutation,而不是直接变更状态。

Action 可以包含任意异步操作。

我们来看一下:

然后我们去修改Hello World.vue文件:

这里我们把commit提交mutations修改为使用dispatch来提交actions;我们点击页面,效果是一样的。

现在让我们来看看效果,这里我又点击了6下,很显然,效果是一样的。

注意,当实际写项目的时候  里面未必直接传的是 数字1 可能是对象啊 或者字符串啊。所以这个时候就要注意了,我举个例子:

这里写个 input 输入框 双向绑定一个 something 记得在 data 里面初始化一下,

然后,我们将something 传入这个方法里面 add(something)

这个时候,看着好像没有什么问题,那么问题这时候就来了,我们先试试点加号会发生什么?

我点击了三下加号,看到没,直接在 0后面拼接了111 变成0111 这显然不是我们想要的效果了,这是为什么呢?

我们来打印一下 这个 1 的数据类型

原来如此,这个是字符串类型,难怪不能直接加,那么现在我们该怎么办呢?当然是 字符串转换成数字啦 parseInt()

当然是 字符串转换成数字啦  哈哈哈哈哈哈 parseInt(); 方法  然后继续打印结果

好了,现在就是数字类型了,那么我们继续最后一步,并且看看效果吧

这里我点击了三下,结果成功的变成了 6.

8、来看一下 Vuex 里面的好东西,辅助函数 mapState、mapGetters、mapActions

如果我们不喜欢这种在页面上使用“this.$stroe.state.count”和“this.$store.dispatch('funName')”这种很长的写法,

那么我们可以使用mapState、mapGetters、mapActions就不会这么麻烦了;

并且我们配合 ... 拓展符 一起使用。

正常显示,效果是一样的,我们就可以不再使用很长的写法来调用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值