VUE的中 computed: { ...mapState([‘auditObj‘]), }写法详解

具体解析:

  1. computed

    • 这是 Vue 组件选项中的计算属性,用于声明依赖于其他数据而存在的派生数据。
    • 计算属性会根据依赖进行缓存,只有当依赖的数据发生变化时才会重新计算。
  2. mapState

    • 这是 Vuex 提供的一个辅助函数,用于将 store 中的 state 映射到组件的计算属性中。
    • 它的作用是简化手动编写计算属性来获取 store 中状态的过程。
  3. ... 扩展运算符

    • 这里使用 ES6 的扩展运算符,将 mapState 返回的对象展开并合并到 computed 对象中。
    • 如果不使用扩展运算符,需要手动将映射的状态添加到计算属性中,代码会更繁琐。
  4. ['auditObj']

    • 这是一个数组,指定了要从 Vuex store 的 state 中映射的状态名称。
    • 这里表示要映射名为 auditObj 的状态。

等价写法:

computed: {auditObj() {
// 把store中存储共享状态数据的对象auditObj拿出来全文方便调用return this.$store.state.auditObj;}
}

拓展解析:

一、Vue 的核心特性

  1. 响应式数据绑定
    Vue 会自动追踪数据变化,并更新依赖该数据的 DOM,无需手动操作 DOM。

<div id="app"><p>{{ message }}</p><button @click="message = 'Hello Vue!'">点击修改</button>
</div><script>new Vue({el: '#app',data() {return { message: 'Hello World!' }}})
</script>

二、computed是 Vue 组件选项中的一个特殊配置项

1. computed 是Vue 组件选项中的计算属性,会根据依赖进行缓存,只有当依赖的数据发生变化时才会重新计算

2 和方法的调用区别【Computed (有缓存)/Methods (无缓存)】

<template><div><p>Count: {{ count }}</p><button @click="count++">Increase Count</button><p>Computed Time: {{ computedTime }}</p> <!-- 计算属性 --><p>Method Time: {{ methodTime() }}</p> <!-- 方法调用 --></div>
</template><script>
export default {data() {return {count: 0}},computed: {computedTime() {// 这个计算属性不依赖任何响应式数据(如 count),所以它只计算一次,永远返回缓存值return Date.now();}},methods: {methodTime() {// 方法每次都会执行return Date.now();}}
}
</script>

三、Vuex 的mapState函数

1. Vuex 核心概念:store

Vuex 是 Vue.js 官方的状态管理模式库,用于集中管理 Vue 应用中多个组件共享的状态;store 是 Vuex 的核心容器,它封装了应用的共享状态(state) 和操作状态的方法

  • 特点

    • 整个应用只有一个唯一的 store(单例模式)
    • 包含 state(状态)、mutations(同步修改)、actions(异步操作)、getters(派生状态)等核心模块
    • 组件通过 store 访问或修改共享状态
  • 创建方式

  • import Vue from 'vue'
    import Vuex from 'vuex'Vue.use(Vuex)const store = new Vuex.Store({// 核心配置项state: { ... },       // 状态mutations: { ... },   // 同步修改状态actions: { ... },     // 异步操作getters: { ... },     // 计算属性modules: { ... }      // 模块拆分(复杂应用)
    })export default store

    2. state:存储共享状态的数据

    state 是 store 中存储共享状态数据的对象,相当于组件中 data 的全局版本。

       基本用法:

const store = new Vuex.Store({state: {count: 0,              // 基础类型user: { name: 'John' }, // 对象类型todos: ['Learn Vuex']   // 数组类型}
})

    组件中访问 state:通过 this.$store.state.xxx 直接访问:

// 组件中
export default {counted() {console.log(this.$store.state.count) // 输出 0console.log(this.$store.state.user.name) // 输出 'John'}
}

3. mapState:映射 state 到组件的辅助函数

mapState 是 Vuex 提供的辅助函数,用于将 store.state 中的属性映射到组件的计算属性(computed)中,简化代码。当组件需要访问多个 state 属性时,避免重复编写 this.$store.state.xxx

  • 数组形式(适用于属性名与 state 中一致):

import { mapState } from 'vuex';export default {computed: {...mapState(['count', 'auditObj']) 
}

上面等同于

export default {computed: {count() {return this.$store.state.count; // 重复写 this.$store.state},user() {return this.$store.state.auditObj; // 重复写 this.$store.state}}
}
  • 对象形式(适用于需要重命名或复杂映射):
export default {computed: {...mapState({myCount: 'count'})}
}

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

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

相关文章

【ProtoBuf】以 “数据秘语” 筑联络:通讯录项目实战 1.0 启步札记

文章目录引言筑路之备&#xff1a;快速上手ProtoBuf步骤一&#xff1a;创建.proto文件⽂件规范添加注释指定 proto3 语法package 声明符定义消息&#xff08;message&#xff09;定义消息字段【定义联系人 message】字段唯一编号的范围步骤2&#xff1a;编译 contacts.proto ⽂…

在 macOS 下升级 Python 几种常见的方法

在 macOS 下升级 Python 有几种常见的方法&#xff0c;具体取决于你最初是如何安装 Python 的。了解你的安装方式是关键。 首先&#xff0c;你需要知道你当前 Python 版本以及它的安装路径。 检查 Python 版本&#xff1a; python --version # 可能指向 Python 2.x python3 …

Linux 入门到精通,真的不用背命令!零基础小白靠「场景化学习法」,3 个月拿下运维 offer,第二十五天

三、Shell脚本编程 Shell脚本语言的运算 算数运算 shell支持算术运算&#xff0c;但只支持整数&#xff0c;不支持小数 Bash中的算术运算 -- 加法运算 -- - 减法运算 -- * 乘法运算 -- / 除法运算 -- % 取模&#xff0c;即取余数 -- ** 乘方 ​ #乘法符号在有些场景需要转…

SpringAI系列---【多租户记忆和淘汰策略】

1.多租户工作原理 2.引入jdbc的pom spring官网链接&#xff1a;https://docs.spring.io/spring-ai/reference/api/chat-memory.html&#xff0c;推荐使用官网的jdbc。 阿里巴巴ai链接&#xff1a;https://github.com/alibaba/spring-ai-alibaba/tree/main/community/memories j…

Linux gzip 命令详解:从基础到高级用法

Linux gzip 命令详解&#xff1a;从基础到高级用法 在 Linux 系统中&#xff0c;文件压缩与解压缩是日常运维和文件管理的常见操作。gzip&#xff08;GNU Zip&#xff09;作为一款经典的压缩工具&#xff0c;凭借其高效的压缩算法和简洁的使用方式&#xff0c;成为 Linux 用户处…

Redis有什么优点和缺点?

优点&#xff1a;极致性能&#xff1a; 基于内存操作和高效的单线程 I/O 模型&#xff0c;读写速度极快。数据结构丰富&#xff1a; 支持多种数据结构&#xff0c;如 String、Hash、List、Set、ZSet、Stream、Geo 等&#xff0c;编程模型灵活。持久化与高可用&#xff1a; 提供…

NestJS 3 分钟搭好 MySQL + MongoDB,CRUD 复制粘贴直接运行

基于上一篇内容《为什么现代 Node 后端都选 NestJS TypeScript&#xff1f;这组合真香了》&#xff0c;这篇文章继续写数据库的连接。 所以今天把MySQL、MongoDB全接上&#xff0c;做个小实例。朋友们项目里用什么数据库可以视情况而定。 这里的功能分别为&#xff1a; MySQ…

用了企业微信 AI 半年,这 5 个功能让我彻底告别重复劳动

每天上班不是在整理会议纪要&#xff0c;就是在翻聊天记录找文件&#xff0c;写文档还要自己抠数据…… 这些重复劳动是不是也在消耗你的时间&#xff1f;作为用了企业微信 AI 功能半年的 “老用户”&#xff0c;我必须说&#xff1a;企业微信 AI 的这 5 个功能&#xff0c;真的…

从入门到高手,Linux就应该这样学【好书推荐】

从入门到高手&#xff0c;请这样学Linux 一、Linux基础与终端操作 1.1 Linux简介 Linux 是一种开源的类 Unix 操作系统&#xff0c;以其稳定性、安全性和高效性被广泛应用于服务器、嵌入式系统及开发环境中。掌握基本命令和操作技巧是 Linux 学习的关键。 1.2 终端基础 打开…

【数据可视化-104】安徽省2025年上半年GDP数据可视化分析:用Python和Pyecharts打造炫酷大屏

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

组件库UI自动化

一、背景 背景&#xff1a; 组件库全局改动场景多&#xff0c;组件之间耦合场景多–时常需要全场景回归组件库demo有200多个&#xff0c;手动全局回归耗时耗力细微偏差纯视觉无法辨别 可行性分析&#xff1a; 组件库功能占比 L1&#xff08;视觉层&#xff09;&#xff1a;图片…

面试题:JVM与G1要点总结

一.Java内存区域 1.运行时数据区的介绍 2.站在线程的角度看Java内存区域 3.深入分析堆和栈的区别 4.方法的出入栈和栈上分配、逃逸分析及TLAB 5.虚拟机中的对象创建步骤 6.对象的内存布局 1.运行时数据区的介绍 运行时数据区的类型&#xff1a;程序计数器、Java虚拟机栈、本地方…

车辆安全供电系统开发原则和实践

摘要在汽车行业中&#xff0c;安全应用的重要性在不断提升&#xff0c;例如受车辆自动化发展以及机械备用系统重要性降低的影响。为应对这些趋势&#xff0c;安全相关的电气和 / 或电子系统&#xff08;E/E 系统&#xff09;的电源输入必须由供电系统来保障&#xff0c;这使得功…

WebSocket客户端库:websocket-fruge365

&#x1f680; 从零开始打造一个WebSocket客户端库&#xff1a;websocket-fruge365 &#x1f4d6; 前言 在现代Web开发中&#xff0c;实时通信已经成为不可或缺的功能。无论是聊天应用、实时数据监控&#xff0c;还是在线协作工具&#xff0c;WebSocket都扮演着重要角色。然而…

rocketmq批量执行跑批任务报错

rocketmq批量执行跑批任务&#xff0c;报下面的错误&#xff0c;怎么处理一下呢&#xff1f;是修改配置还是修改代码还是&#xff1f; org.apache.rocketmq.client.exception.MQBrokerException: CODE: 215 DESC: [FLOW]client has exhausted the send quota for the current …

大语言模型(LLM)简介与应用分享

1. 什么是大语言模型&#xff08;LLM&#xff09; 大语言模型&#xff08;Large Language Model&#xff0c;简称 LLM&#xff09;是基于 深度学习 和 海量文本数据 训练而成的人工智能模型。 采用 Transformer 架构参数规模巨大&#xff08;数十亿到数千亿&#xff09;能够 理…

【算法笔记】选择排序、插入排序、冒泡排序、二分查找问题

算法的笔记&#xff0c;直接上代码&#xff0c;思路和问题这些&#xff0c;都在代码注释上面 1、工具类 为了生成测试代码和比较器&#xff0c;专门写了一个数组工具类&#xff0c;代码如下&#xff1a; /*** 数组工具类*/ public class ArrUtil {/*** 生成随机数组* 长度是[0,…

行业分享丨基于SimSolid的大型汽车连续冲压模具刚度分析

*本文投稿自机械零部件制造业用户 汽车连续模具的刚度直接决定了冲压件质量&#xff08;尺寸精度、表面缺陷&#xff09;与模具寿命。传统有限元分析&#xff08;FEA&#xff09;在面对大型复杂模具装配体时&#xff0c;存在网格划分困难、计算资源消耗大、周期长等瓶颈。本文以…

用AI生成的html页面设计放到到Axure上实现再改造的方法

要将 AI 生成的 HTML 原型导入 Axure&#xff0c;该方法的核心逻辑是以 Figma 为 “中间桥梁”&#xff08;因 Axure 无法直接读取 HTML&#xff0c;需通过 Figma 转换格式&#xff09;&#xff0c;分 3 步即可完成&#xff0c;以下是详细操作指南&#xff08;含每步目标、具体…

从入门到实战:Linux sed命令全攻略,文本处理效率翻倍

从入门到实战&#xff1a;Linux sed命令全攻略&#xff0c;文本处理效率翻倍 文章目录从入门到实战&#xff1a;Linux sed命令全攻略&#xff0c;文本处理效率翻倍一、认识sed&#xff1a;什么是流编辑器&#xff1f;二、吃透sed工作原理&#xff1a;为什么它能高效处理文本&am…