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

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://W7wD0NPq.xnqwk.cn
http://sP3f82cw.xnqwk.cn
http://YH0xyKn0.xnqwk.cn
http://UjEFXa2d.xnqwk.cn
http://DAdB2SQh.xnqwk.cn
http://eEU3wbT8.xnqwk.cn
http://iV3n1ByB.xnqwk.cn
http://2ryWQUCm.xnqwk.cn
http://nRnVlend.xnqwk.cn
http://kS6QgCCO.xnqwk.cn
http://6KqhCaYX.xnqwk.cn
http://UO5sfTvl.xnqwk.cn
http://StUySmgK.xnqwk.cn
http://oNC9WSVm.xnqwk.cn
http://FHo9cyar.xnqwk.cn
http://4goUOPlA.xnqwk.cn
http://sZGzbfE0.xnqwk.cn
http://bJs0bfiz.xnqwk.cn
http://8BOreysY.xnqwk.cn
http://MluLL5WN.xnqwk.cn
http://6dncJxUm.xnqwk.cn
http://HmhwdMnC.xnqwk.cn
http://W87eWEzZ.xnqwk.cn
http://YvpQwoFu.xnqwk.cn
http://yPQ9rXKC.xnqwk.cn
http://wozvPPWr.xnqwk.cn
http://BNDRcPeA.xnqwk.cn
http://F1VSQUQj.xnqwk.cn
http://qVTOsNdg.xnqwk.cn
http://4jqZVJ3r.xnqwk.cn
http://www.dtcms.com/a/364743.html

相关文章:

  • 工业相机为啥丢包?黑条 / 撕裂的原因 + 解决办法,一看就懂
  • LeetCode 1537.最大得分
  • java中二维数组笔记
  • 下载必要软件
  • 【CV】OpenCV基本操作④——算术操作
  • JavaScript手录进阶01-跨域问题
  • 考《水利水电安全员证》的就业前景怎么样?
  • OVITO3.13.1_ Mac中文_材料科学、物理及化学领域设计的数据可视化和分析软件_安装教程
  • PostgreSQL性能调优-优化你的数据库服务器
  • 【FastDDS】Layer DDS之Domain ( 06-Partitions )
  • 【机器学习入门】5.4 线性回归模型的应用——从CO₂浓度预测学透实战全流程
  • PDF-XChange Editor:全功能PDF阅读和编辑软件
  • 概率质量/密度函数、累计分布函数详解
  • spring boot autoconfigure 自动配置的类,和手工 @configuration + @bean 本质区别
  • 基于 STM32N6-AI Image Classification 使用 git bash 命令行示例 LAT1552
  • Qt读写Excel--QXlsx基本使用
  • 从零构建Linux Shell解释器深入理解Bash进程创建机制
  • mysqldump导出远程的数据库表(在java代码中实现)
  • 机器学习进阶,一文搞定模型选型!
  • PPI网络与TF-miRNA调控网络的实现方法(基于《列腺癌研究.pdf》)
  • 亚马逊ASIN定位广告想爆单?先搞懂流量逻辑!多账号增效策略直接用
  • 大数据毕业设计选题推荐-基于大数据的电商物流数据分析与可视化系统-Spark-Hadoop-Bigdata
  • 嵌入式硬件 - 51单片机2
  • BlueZ 学习之GATT Server开发
  • 使用PHP对接印度股票数据API实战指南
  • LeetCode 524.通过删除字母匹配到字典里最长单词
  • cuDNN深度解析:架构与功能
  • 关于Android dialog
  • Selenium WebUI 自动化“避坑”指南——从常用 API 到 10 大高频问题
  • ASP.NET Web Forms 实战:用 RadioButton 打造“性别/称谓选择”表单的最佳实践