vuex中Getter的用法詳解
前言
Vuex 允許我們在 store 中定義“getter”(可以認(rèn)為是 store 的計算屬性)。就像計算屬性一樣,getter 的返回值會根據(jù)它的依賴被緩存起來,且只有當(dāng)它的依賴值發(fā)生了改變才會被重新計算。
以官網(wǎng)的例子來說明,官網(wǎng)代碼如下:
在組件中使用以下代碼訪問:
this.$store.getters.doneTodosCount
一、說明
getters中的訪問器函數(shù),默認(rèn)會傳遞2個參數(shù)(state, getters),使用第一個參數(shù)state可以訪問數(shù)據(jù),使用getters參數(shù)可以訪問訪問器中的其它訪問器函數(shù)。大部分情況下只需要使用第一個參數(shù),定義訪問器函數(shù)就只寫第一個參數(shù)即可,就像上面的例子。訪問這些訪問器屬性時,就像是組件中的計算屬性一樣調(diào)用,而不是像函數(shù)調(diào)用一樣。
這是有第二個參數(shù)getters時的使用例子,在組件中直接使用下面的代碼調(diào)用,就像調(diào)用計算屬性一樣。第2個參數(shù)系統(tǒng)會默認(rèn)傳遞。
this.$store.getters.doneTodos
二、getter返回一個函數(shù)
通過讓 getter 返回一個函數(shù),來實現(xiàn)給 getter 傳參。因此它的主要作用是傳遞參數(shù)。
在組件中直接訪問 this.$store.getters.getTodoById時,返回的是一個函數(shù)。然后再進行函數(shù)調(diào)用的方式傳遞參數(shù)進去,就得到了函數(shù)的結(jié)果。
三、使用mapGetters 對象展開
在組件的計算屬性中,直接使用以下方式,可以很方便的引用getter屬性,然后就像調(diào)用普通的計算屬性一樣的使用。
如果你想將一個 getter 屬性另取一個名字,使用對象形式:
這些知識點,光看文檔有時候會很難理解,手動實踐一下,會很容易的消化理解。
vuex getter傳參方法
getters: { getProductByid: (state) => (id) => { return state.productList.find(item => item.id === id); } }
在使用了namespace的情況下調(diào)用:
this.$store.getters['yournamespace/getProductByid'](id);
在未使用namespace的情況下調(diào)用:
this.$store.getters.getProductByid(id);
總結(jié)
到此這篇關(guān)于vuex中Getter用法的文章就介紹到這了,更多相關(guān)Vuex Getter用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用van-picker?動態(tài)設(shè)置當(dāng)前選中項
這篇文章主要介紹了使用van-picker?動態(tài)設(shè)置當(dāng)前選中項方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10vue3中使用router路由實現(xiàn)跳轉(zhuǎn)傳參的方法
這篇文章主要介紹了vue3中使用router路由實現(xiàn)跳轉(zhuǎn)傳參的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03基于vue.js中關(guān)于下拉框的值默認(rèn)及綁定問題
今天小編就為大家分享一篇基于vue.js中關(guān)于下拉框的值默認(rèn)及綁定問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08使用vue3+ts+setup獲取全局變量getCurrentInstance的方法實例
這篇文章主要給大家介紹了關(guān)于使用vue3+ts+setup獲取全局變量getCurrentInstance的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用vue3具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-08-08