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/zh-hant/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

發表回復

登錄後才能評論