Vuex中的Vuemapgetters

在Vuex中,MapGetters可以使得在组件中访问Vuex store的getters函数变得更加容易。这篇文章将会从以下几个方面就Vuemapgetters进行详细地阐述。

一、映射多个Getters到计算属性

...mapGetters([
  'getters1',
  'getters2',
  'getters3'
])

上述代码就是将组件中的computed属性映射到store中的多个getter函数。上面的代码与下面的代码是等价的:

computed: {
  ...Vuex.mapGetters([
    'getters1',
    'getters2',
    'getters3'
  ])
}

为了将多个Getters映射到组件中,你可以传递一个数组到该映射函数中。这使得我们可以使用不同的格式与组件相关的计算属性实现更好的灵活度。

二、使用对象映射Getters到计算属性

...mapGetters({
  getter1Alias: 'getters1',
  getter2Alias: 'getters2'
})

上述代码与下面的代码是等价的:

computed: {
  getter1Alias: Vuex.mapGetters('getters1'),
  getter2Alias: Vuex.mapGetters('getters2')
}

对象映射方式是另一种组合多个Getters的方式,该方法允许我们使用更有意义的别名来表示各个Getters。

三、在继承getters的同时在计算属性中增加自己的getter函数

...mapGetters({
  getter1Alias: 'getters1',
  getter2Alias: 'getters2',
  myAwesomeGetter: state => {...}
})

使用对象方式映射Getters可以允许我们在映射getter函数时添加自定义的getter函数。一旦getter在store中注册了会自动被Vuex计算。你可以想象一下传入的函数会被添加到store的getters中,就像下面这个例子:

const store = new Vuex.Store({
  state: {...},
  getters: {
    getters1: state => {...},
    getters2: state => {...},
    myAwesomeGetter: state => {...}
  },
  actions: {...},
  mutations: {...}
})

四、使用命名空间

使用命名空间使得我们可以为组件关联上一个特定module的actions和mutations,但是默认情况下,它不能为getter函数提供这样一种映射。相对地,用户必须将getter函数与正确的module名称拼接起来来实现映射,就像这个例子:

...mapGetters('myModule/', {
  getter1Alias: 'getters1',
  getter2Alias: 'getters2'
})

上述代码与下面的代码是等价的:

computed: {
  getter1Alias: Vuex.mapGetters('myModule/', 'getters1'),
  getter2Alias: Vuex.mapGetters('myModule/', 'getters2')
}

这种情况下,去除命名空间的映射方式不会起作用,所以必须使用module名称。

五、结论

Vuemapgetters应该是Vuex中最重要的一个策略,因为它使得在组件中访问store的getters函数变得更加容易。通过多个Getters与计算属性的映射,对象映射方式等,我们可以使用不同的技巧来使用它,当然相比于去除命名空间的映射方式,使用命名空间的方式更加的有效和准确。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/312943.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2025-01-06 15:17
下一篇 2025-01-06 15:17

相关推荐

  • Vue状态管理——Vuex

    一、安装和基础配置 安装Vuex非常简单,只需在终端中运行如下命令: npm install vuex –save 在Vue项目中,需要将Vuex引入并通过Vue.use()使用…

    编程 2025-04-24
  • 深入吕昕开发的vuex插件:Pinia

    一、简介 Pinia 是一个由 Vue.js 核心成员 Luy 带头开发的 Vuex 替代品,它基于 Vue 3 composition API 构建,提供了一种更加简洁优雅的状态…

    编程 2025-04-18
  • Vuex教程:如何管理Vue.js应用程序的状态?

    Vue.js是一个极富竞争力的JavaScript库,因为它提供了一种灵活且易于使用的方式来创建用户界面并与后端API进行交互。然而,它并没有提供一个内建的、结构化的方法来管理应用…

    编程 2025-04-12
  • 从多个角度看如何卸载vuex

    一、vuex基础介绍 首先,我们需要先了解数据管理库vuex的作用和基本原理。在一个Vue应用中,所有的组件都会共享同一个状态,这个状态可以被任何一个组件修改,而这样的直接修改可能…

    编程 2025-02-15
  • Vuex取值详解

    一、Vuex取值方式 Vuex是Vue.js的一个状态管理工具,可以集中管理所有组件的状态,它包含了全局的状态管理和修改该状态的方法。在Vuex中,我们可以使用以下方式来取值: 1…

    编程 2025-01-07
  • Vuex使用实例

    一、vlookup使用实例 vlookup是excel中一种非常常用的函数,它的作用是在一个数据库中查找某个值的位置,并返回其相对应的值。同样,在Vuex中也存在一种类似的查找方式…

    编程 2024-12-21
  • Vue.js中的State管理——使用mapGetters与Vuex

    一、Vue.js中的State(状态)管理 Vue.js是一种现代化的JavaScript框架,它允许我们轻松地构建动态Web应用程序,其中包含大量的交互式组件。在一个复杂的Web…

    编程 2024-12-15
  • 解决安装vuex导致npm包版本冲突的问题

    如果你在安装 vuex 时遇到了版本冲突的问题,不必担心。本文将介绍如何解决这个问题。首先需要了解一下,导致版本冲突的原因是由于在项目中同时使用了多个版本的相同依赖包。这时候我们需…

    编程 2024-12-14
  • 深入理解Vuex Modules

    由于Vue在前端开发中的不断普及和广泛应用,应运而生的Vuex在全局状态管理上面提供了非常好的解决方案。在Vuex中,我们可以把应用中的状态集中到一个全局的存储区域并通过一些简单的…

    编程 2024-12-12
  • 详解Vuex插件

    一、插件的介绍 Vue.js是一款轻量级的前端框架,其核心库只包含数据绑定和组件化的实现。当我们的应用变得复杂而需要管理和同步多个状态时,Vuex就能很好地解决这个问题。Vuex是…

    编程 2024-12-07

发表回复

登录后才能评论