一文解释mapState的来龙去脉

2023-10-07 00:15

本文主要是介绍一文解释mapState的来龙去脉,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

mapState

Vuex 提供的辅助函数之一,将 store 中的状态映射到组件的计算属性中,使得在组件中可以轻松地访问 Vuex store 中的状态值

  • MapState(映射状态)

在我们的 Count.vue 组件中,可以使用 mapState 来更简洁地获取 count 的状态值

首先,导入 mapState

 import { mapState } from 'vuex'

然后,在 computed 中使用 mapState

 computed: {//借助mapState生成计算属性,从state中读取数据 如果是对象的话使用key-value// 对象写法 soqi是计算属性名,count是状态名...mapState([suoqi:'count'])// 数组写法...mapState(['count'])},

数组的写法:

  • count(在计算属性中的名字)是我们在组件中可以使用的计算属性名

  • count(在数组中的字符串)是 Vuex store 中的状态名,从state中读取数据

它们一起简写为['count']了

现在, Count.vue 组件中会有一个名为 count 的计算属性,它会映射到 Vuex store 中的 count 状态,就和我们之前的使用方式一样啦

image-20230925004753704

等同于:

 // 对象写法...mapState({//  soqi:'count'count: 'count'})// 普通写法suoqi() {return this.$store.state.count;},count() {return this.$store.state.count;}

总的来说,...mapState(['count']) 让我们可以非常方便地将 Vuex store 中的状态映射到组件中,避免了在每个组件中都需要写一遍 this.$store.state.count 的繁琐代码。

这里的点点点...是用了ES6的对象展开运算符(Spread Operator)语法,给不会的伙伴简单拓展一下

 const obj1 = { a: 1, b: 2, c: 3 };const obj2 = { ...obj1, d: 4, e: 5 };console.log(obj2);

obj2 是通过将 obj1 中的所有属性展开,再添加额外的属性 de 构建而成的。

在我们之前的讨论中,mapState(['count']) 使用了对象展开运算符将 count 属性从 mapState 返回的数组中提取出来,并将它作为组件的计算属性。

相当于这个过程:

 computed: {count() {return this.$store.state.count;}}

没理解的话再拓展一点,mapState(['count']) 返回的是一个包含一个函数的对象,所以...把mapState的这些属性全部展开

 {count: function state() {return this.$store.state.count;}}

这样就使得我们可以在组件中以 this.count 的方式方便地访问 Vuex store 中的 count 状态了,和之前的结果效果一样

对您有用的话请点个免费的赞叭,有任何问题都可留言或私信哈~

这篇关于一文解释mapState的来龙去脉的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/154831

相关文章

一文解密Python进行监控进程的黑科技

《一文解密Python进行监控进程的黑科技》在计算机系统管理和应用性能优化中,监控进程的CPU、内存和IO使用率是非常重要的任务,下面我们就来讲讲如何Python写一个简单使用的监控进程的工具吧... 目录准备工作监控CPU使用率监控内存使用率监控IO使用率小工具代码整合在计算机系统管理和应用性能优化中,监

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

一文详解SpringBoot中控制器的动态注册与卸载

《一文详解SpringBoot中控制器的动态注册与卸载》在项目开发中,通过动态注册和卸载控制器功能,可以根据业务场景和项目需要实现功能的动态增加、删除,提高系统的灵活性和可扩展性,下面我们就来看看Sp... 目录项目结构1. 创建 Spring Boot 启动类2. 创建一个测试控制器3. 创建动态控制器注

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

一文详解Java Stream的sorted自定义排序

《一文详解JavaStream的sorted自定义排序》Javastream中的sorted方法是用于对流中的元素进行排序的方法,它可以接受一个comparator参数,用于指定排序规则,sorte... 目录一、sorted 操作的基础原理二、自定义排序的实现方式1. Comparator 接口的 Lam

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

一文全面详解Python变量作用域

《一文全面详解Python变量作用域》变量作用域是Python中非常重要的概念,它决定了在哪里可以访问变量,下面我将用通俗易懂的方式,结合代码示例和图表,带你全面了解Python变量作用域,需要的朋友... 目录一、什么是变量作用域?二、python的四种作用域作用域查找顺序图示三、各作用域详解1. 局部作

一文彻底搞懂Java 中的 SPI 是什么

《一文彻底搞懂Java中的SPI是什么》:本文主要介绍Java中的SPI是什么,本篇文章将通过经典题目、实战解析和面试官视角,帮助你从容应对“SPI”相关问题,赢得技术面试的加分项,需要的朋... 目录一、面试主题概述二、高频面试题汇总三、重点题目详解✅ 面试题1:Java 的 SPI 是什么?如何实现一个