2023-03-14 07:35:24
在 Vue.js 中,Getter 主要用于 Vuex 状态管理,其核心作用是计算和检索状态的衍生数据,类似于组件中的 computed 属性,但具有全局老辩性和缓存特性。以下是详细解析:
Getter 的核心作用计算衍生数据
基于 Vuex 的 state 进行计算,返回新的值(例如过滤、排序、数学运算等)。
示例:若 state 中有 count,可通过 getter 返回 count * 2。
数据封装
将数据处理逻辑与组件解耦,使组件更专注于展示,逻辑更清晰。
缓存优化
Getter 的结果会被缓存,只有当依赖的 state 变化时才会重新计算,提升性能(尤其适用于复杂计算)。
提高可测试性
Getter 是纯函数(无副作用),便于单独测试。
方式一:通过 mapGetters 辅助函数
import { mapGetters } from 'vuex';export default { computed: { // 将 getter 映射为组件的计算属性 ...mapGetters(['activeTodos', 'activeTodosCount']) }};<template> <div>未完成任务数:{{ activeTodosCount }}</div></template>方式二:直接通过 this.$store.getters 访问
this.$store.getters.activeTodos;Getter 是 Vuex 中强大的工具,通过封装计算逻辑、缓存结果和提升可维护性,帮助开发者更高效地管理复杂应用的状态。合理使用 Getter 能显著减少代码冗余,并优化性能。