六、Vuex

六、Vuex

6.1 Vuex是什么

  • 概念:专门在 Vue 中实现集中式状态(数据)管理的一个 Vue 插件,对 vue 应 用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方 式,且适用于任意组件间通信。
  • Github 地址: https://github.com/vuejs/vuex

6.1.2 什么时候使用 Vue

  1. 多个组件依赖于同一状态
  2. 来自不同组件的行为需要变更同一状态

6.1.3 案例

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6.1.4 Vuex 工作原理图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6.2 vuex 核心概念和 API

6.2.1 state

  1. vuex 管理的状态对象

  2. 它应该是唯一的

  3. 示例代码:

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6.2.3 action

  1. 值为一个对象,包含多个响应用户动作的回调函数

  2. 通过 commit( )来触发 mutation 中函数的调用, 间接更新 state

  3. 如何触发 actions 中的回调?

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  4. 可以包含异步代码(定时器, ajax 等等

  5. 示例代码:

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6.2.3 mutations

  1. 值是一个对象,包含多个直接更新 state 的方

  2. .谁能调用 mutations 中的方法?如何调用

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  3. mutations 中方法的特点:不能写异步代码、只能单纯的操作 stat

  4. 示例代码:

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6.3 四个map方法的使用

6.3.1 mapState方法

  • 用于帮我们映射state中的数据为计算属性。
 computed:{//借助mapState生成计算属性,从state中读取数据。(对象写法)...mapState({sum:'sum',school:'school',student:'student'}),//借助mapState生成计算属性,从state中读取数据。(数组写法)...mapState(["school","sum","student"]),}

6.3.2 mapGetters方法

  • 用于帮助我们映射getters中的数据为计算属性
 computed:{//借助mapGetters生成计算属性,从state中读取数据。(对象写法)...mapGetters({bigSum:'bigSum'}),//借助mapGetters生成计算属性,从state中读取数据。(数组写法)...mapGetters(["bigSum"])}

6.3.3 mapActions方法

  • 用于帮助我们生成与 actions 对话的方法,即包含$store.dispatch(xxx) 的函数
methods:{//借助mapActions生成对应的方法,方法中会调用 dispatch 去联系 actions (对象写法)...mapActions({incrementOdd:'incrementOdd',incrementWait:'incrementWait'}),//借助mapActions生成对应的方法,方法中会调用 dispatch 去联系 actions (数组写法)...mapActions(['incrementOdd','incrementWait'])},

6.3.4 mapMutations方法

  • 用于帮助我们生成与mutations对话的方法,即:包含$.store.commit(xxx)的函数
methods:{//借助mapMutations生成对应的方法,方法中会调用commit去联系mutations(对象写法)...mapMutations({decrement:'DECREMENT',increment:'INCREMENT'}),//借助mapMutations生成对应的方法,方法中会调用commit去联系mutations(数组写法)...mapMutations(['DECREMENT','INCREMENT']),},

mapActions与mapMutations使用时,若需要传递参数需要:在模板中绑定事件时传递好参数,否则参数是事件参数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/492497.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营29期|day62 任务以及具体安排

第十章 单调栈part01 739. 每日温度 class Solution {// 版本 1public int[] dailyTemperatures(int[] temperatures) {int lenstemperatures.length;int []resnew int[lens];/**如果当前遍历的元素 大于栈顶元素,表示 栈顶元素的 右边的最大的元素就是 当前遍历的元…

吴恩达deeplearning.ai:sigmoid函数的替代方案以及激活函数的选择

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏 文章目录 引入——改进下需求预测模型ReLU函数(整流线性单元 rectified linear unit)线性激活函数(linear activation function)激活函数的选择实现方式为什么需要激活函数 到现在…

Linux安装Mysql(超详细,亲测)

1.下载MySQL的YUM仓库文件 创建一个文件夹(可以在任意目录建立一个文件夹,这边建议在home下创建) mkdir mysql 进入创建的mysql目录 cd mysql 下载MySQL的YUM仓库文件 wget https://dev.mysql.com/get/mysql57-community-release-el7-11.no…

UDP 与 RTP 实现高效的音视频通信

协议确定了双方通信的规则和流程。在互联网的协议集中,有一种无连接的传输协议,被称为用户数据报协议(UDP,User Datagram Protocol)。 UDP 为应用程序提供了一种简单的数据传输方式,当我们谈到 UDP 应用场…

LeetCode 31 下一个排列

LeetCode 31 下一个排列 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的下一个字典序更大的…

Keil5 配置jlink

1.先选好对应的芯片设备 之后步骤参考这个:MDK5 JLINK配置流程_keil5配置jlink仿真器步骤-CSDN博客

LeetCode 热题 100 | 二叉树(四)

目录 1 114. 二叉树展开为链表 2 105. 从前序与中序遍历序列构造二叉树 3 437. 路径总和 III 菜鸟做题(即将返校版),语言是 C 1 114. 二叉树展开为链表 题眼:展开后的单链表应该与二叉树 先序遍历 顺序相同。 而先序遍历就…

MBG(Mybatis-Generator)生成代码

目录 步骤: 1. 创建数据库表 2. 配置 MyBatis Generator 3. 运行 MyBatis Generator 4. 编写业务逻辑 在实际开发中,你会发现有很多重复的工作: 首先是PO对象,我们往往创建与数据库表字段一一对应的PO对象; 其次在Mapper里…

【电机仿真】HFI算法脉振高频电压信号注入观测器-PMSM无感FOC控制

【电机仿真】HFI算法脉振高频电压信号注入观测器-PMSM无感FOC控制 文章目录 前言一、脉振高频电压注入法简介(注入在旋转坐标系的d轴)1.旋转高频电压(电流)注入法2.脉振高频电压注入法 二、高频注入理论1.永磁同步电机的高频模型2…

java spring 01 IOC源码

01.spring 中的基础是IOC 中有一个方法 例子: 01. 02. 03. 这里是扩展方法,现在是空的 beanfactorypostprocessors: 国际化:(一般不管) 广播器: 监听器: 实例化&#xff1…

Day03-课后练习(流程控制_分支结构)(判断年、月、日是否合法,判断打鱼还是晒网,判断星座)

参考答案博客链接跳转 文章目录 巩固题1、从键盘输入一个整数,判断它是否是5的倍数2、从键盘输入一个字符,判断字符类型3、计算折扣后金额4、输出月份对应的英语单词5、计算今天是星期几 简答题拔高题(自愿)6、判断年、月、日是否…

使用Node.js和Vue.js构建全栈Web应用

随着互联网的迅速发展,Web应用程序的开发变得越来越复杂和多样化。为了满足用户不断变化的需求,全栈开发已成为一个备受关注的话题。在本篇博客中,我将介绍如何使用Node.js和Vue.js来构建全栈Web应用。 Node.js是一个基于Chrome V8引擎的Jav…