当前位置: 首页 > news >正文

Vuex的学习-2

Vuex的核心概念

  • State
  • Mutation
  • Action

1.State

State提供唯一的公共数据源,所有共享的数据都统一放在Store的State中进行存储。

const store = new Vuex.Store({state : { count: 0 }
})

这是渲染的页面

组件访问数据的第一种方式

 

组件访问数据的第二种方式

// 1.从 vuex 中按需导入 mapState 函数
import { mapState } from 'vuex'

通过刚才导入的 mapState 函数,将当前组件需要的全局数据,映射为当前组件的 computed 计算属性 

// 2.将全局数据,映射为当前组件的计算属性
computed:{...mapState(['count'])
}

 

2.Mutation

Mutation用来更改Store中的数据

  • 只能通过mutation来更改Store数据,不可以直接操作Store中的数据
  • 通过这种方式操作可以更好的集中监控所有数据的变化

触发mutations的第一种方式

A.-1
// 定义Mutation
const store = new Vuex.Store({state:{count:0},mutations:{add(state){//变更状态state.count++}}
})// 触发mutation
methods: {btnAdd() {//触发 mutation 的第一种方式this.$store.commit('add')}
}

 

 B.-n
// 定义Mutation
const store = new Vuex.Store({state : {count : 0},mutations : {addN(state,step){// 变更状态state.count += step}}
})// 触发 mutation
methods : {handle(){// 在调用 commit 函数// 触发 mutationas 携带参数this.$store.commit('addN',3)}
}

 

触发mutations的第二种方式

// 1.从 vuex 中按需导入 mapMutations 函数
import { mapMutations } from 'vuex'

通过刚才导入的mapMutations函数,将需要的mutations函数,映射为当前组件的 methods 方法

// 2.将指定的mutations函数,映射为当前组件的methods函数
methods:{...mapMutations(['add','addN'])
}
A.-1 

B.-n

3.Action

Action用于处理异步任务。

如果通过异步操作变更数据,必须通过Action,不能使用Mutation,但是在Action中还是要通过触发Mutation的方式简介变更数据。

触发actions的第一种方式

A不带参数
// 定义 Action
const store = new Vuex.Store({//...mutations : {add(state){state.count++}},actions :{addAsync(context){setTimeout(() => {context.commit('add')},1000)}}
})// 触发 Action
methods : {btnAdd3 () {//触发 actions的第一种方式this.$store.dispatch('addAsync')}
}

B带参数
// 定义 Action
const store = new Vuex.Store({//...mutations : {addN(state, step){state.count += step}},actions :{addNAsync(context, step){setTimeout(() => {context.commit('addN', step)},1000)}}
})// 触发 Action
methods : {btnAdd4 () {// 在调用 dispatch 函数// 触发 actions 时携带参数this.$store.dispatch('addNAsync', 5)}
}

 

触发actions的第二种方式

// 1.从 vuex 中按需导入 mapActions 函数
import { mapActions } from 'vuex'

通过刚才导入的 mapActions 函数,将需要的 actions 函数,映射为当前组建的 methods 方法

// 2.将指定的 actions 函数,映射为当前组件的 methods 函数
methods:{...mapActions(['addAsync','addNAsync'])
}
A.-1

B.-n

这就是大体步骤

4.Getter

Getter用于随Store中的数据进行加工处理形成新的数据

  • Getter对Store中已有数据加工处理之后形成新的数据,类似vue的计算属性
  • Store中数据发生变化,Getter的数据也会跟着变化
// 定义Getter
const store = new Vuex.Store({state : {count : 0},getters : {showNum: state => {return `当前数据是${state.count}`}}
})// 触发 mutation
methods : {handle(){// 在调用 commit 函数// 触发 mutationas 携带参数this.$store.commit('addN',3)}
}

定义Getters 

使用getters的第一种方式

this.$store.getters.名称 

使用getters的第二种方式 

import { mapGetters } from 'vuex'computed: {...mapGetters(['showNum'])
}

http://www.lryc.cn/news/264651.html

相关文章:

  • 智慧安防视频监控EasyCVR如何通过回调接口向第三方平台推送RTSP视频通道离线通知
  • Scrum项目管理流程及免费敏捷工具
  • 大型医院PACS系统源码,影像存储与传输系统源码,支持多种图像处理及三维重建功能
  • HDFS NFS Gateway(环境配置,超级详细!!)
  • nginx 离线安装 https反向代理
  • Linux Centos 配置 Docker 国内镜像加速
  • 中心下标-----来自力扣
  • 手写单链表(指针)(next域)附图
  • 关于with torch.no_grad:的一些小问题
  • 大创项目推荐 深度学习 机器视觉 人脸识别系统 - opencv python
  • 【PostGIS】空间数据库-常用空间函数
  • 程序员的50大JVM面试问题及答案
  • 架构设计系列之前端架构和后端架构的区别和联系
  • UE5 水材质注意要点
  • 数据安全扫描仪荣膺网络安全优秀创新成果大赛优胜奖 - 凸显多重优势
  • 数据结构学习 leetcode64最小路径和
  • 导出(导入)Linux虚拟机并修改IP地址
  • OpenCV4工业缺陷检测的六种方法
  • ICC2:Less than minimum edge length和Concave convex edge enclosure
  • RouterSrv-DHCP
  • 【人生苦短,我学 Python】(8)文件的读写和过滤器
  • 智能优化算法应用:基于饥饿游戏算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • leetCode算法—10. 正则表达式匹配
  • Android Studio 实现音乐播放器
  • 端口占用命令 netstat (centos)+netstat (windows)
  • Python-基于fastapi实现SSE流式返回(类似GPT)
  • iOS中宿主APP与录屏扩展进程数据传递方式
  • Windows系统下的可用RADIUS软件-[资源]
  • 基于VUE3+Layui从头搭建通用后台管理系统(前端篇)十五:基础数据模块相关功能实现
  • MAC苹果笔记本电脑如何彻底清理垃圾文件软件?