状态管理库Vuex的使用

安装

首先用vscode打开一个用vue cli 创建的空项目,vue2项目对应vuex3,vue3项目对应vuex4,这里我创建的是vue2项目
调出控制台 npm install vuex@3
在这里插入图片描述
创建store
在这里插入图片描述

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store({
 state: {
count: 0
  },
  mutations: {
    increment (state) {
      state.count++
    }
  }
})

注入store

首先导出
在这里插入图片描述
在main.js中导入并注入
在这里插入图片描述

可以通过 this.$store.state. 取数据了
在这里插入图片描述
模板里面可以不用加this
在这里插入图片描述
在这里插入图片描述

定义行为

不要直接操作数据,而是使用 this.$store.commit 提交store中定义的mutation,间接操作数据
在这里插入图片描述
在这里插入图片描述

简化参数获取

在这里插入图片描述

Getters对数据进行过滤

这里我们有一个待办事项列表
在这里插入图片描述

添加映射并渲染
在这里插入图片描述
在这里插入图片描述

可以看见所有数据
在这里插入图片描述
现在我们要过滤出所有已完成的数据,即todo.done为true的数据

在store中加入getters
返回的数据用filter进行了过滤
在这里插入图片描述

导入mapGetter并添加映射
这里的 … 是对外展开 因为 computed: 下多加了一级 {}
在这里插入图片描述

渲染
在这里插入图片描述
在这里插入图片描述

提交载荷Payload

mutations中自定义的方法可以多给一个Payload参数
在这里插入图片描述

这里我们给一个num【随便定义,取名而已】
后续根据提交【commit】的时候传入的num,执行操作 count += num
在这里插入图片描述
提交时需要传入Payload的值
在这里插入图片描述

在这里插入图片描述

因为我传入了8,所以点击执行动作的时候变成每次加8了
在这里插入图片描述

载荷为一个对象
在这里插入图片描述
在这里插入图片描述

对象风格的提交方式
在这里插入图片描述

使用mapMutations函数将mutation中的方法映射为当前组件自己的方法

定义一个没有荷载的mutation,mapMutations对荷载的支持我。。反正找了挺久也自个测试了挺久还是不知道怎么在调用映射的方法的时候传入荷载

在这里插入图片描述

导入mapMutatios并添加映射
在这里插入图片描述
加个按钮测试下
在这里插入图片描述
在这里插入图片描述

官方文档说是支持荷载的
在这里插入图片描述
然而在调用映射的方法时候如果传入payload是个问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值