Vuex如何獲取getter對象中的值(包括module中的getter)
更新時間:2022年08月31日 11:29:42 作者:trenki
這篇文章主要介紹了Vuex如何獲取getter對象中的值(包括module中的getter),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
Vuex獲取getter對象中的值
getter取值與state取值具有相似性
1.直接從根實例獲取
// main.js中,把store注冊在根實例下,可使用this.$stroe.getters直接取值
computed: {
? testNum1() {
? ? return this.$store.getters.testNum1;
? }
}2.使用mapGetters取值
import { mapGetters } from "vuex";
export default {
? computed: {
? ? ...mapGetters({
? ? ? // 把 `this.getNum1` 映射為 `this.$store.getters.getNum1`
? ? ? getNum1: "getNum1"
? ? }),
? ? ...mapGetters([
? ? ? // 使用對象展開運算符將 getter 混入 computed 對象
? ? ? "getNum4"
? ? ])
? }
};3.使用module中的getter
module中的getter,又分為namespaced(命名空間)為true和false的情況。默認為false,則表示方位都是全局注冊,與上邊兩種方法一致。
當為true時,則使用如下方法:
import { mapGetters } from "vuex";
export default {
? computed: {
? ? getNum1(a,b) {
? ? ? return this.$store.getters['moduleA/getNum1']
? ? },
? ? // 第一個參數(shù)是namespace命名空間,填上對應的module名稱即可
? ? ...mapGetters("moduleA", {
? ? ? getNum2: "getNum2"
? ? }),
? ? ...mapGetters("moduleA", ["getNum3"])
? }
};計算屬性獲取的getter值需要刷新才能更新
描述
// state
state: {
leader: null
},
// getters
getters: {
getLead: state => state.leader
}
// mutations
mutations: {
setLead (state, data) {
state.leader = data
}
},
// 頁面中賦值
// 登錄時改變state.leader的值
this.$store.commit('setLead', true)
// 組件中計算屬性監(jiān)聽
import { mapGetters } from 'vuex'
computed: {
leader () {
...mapGetters(['getLead'])
}
}
打印this.leader,直接獲取計算屬性值

刷新之后的打印結(jié)果

解決
增加監(jiān)聽函數(shù)watch,修改計算屬性
computed: {
...mapGetters(['getLead'])
//原來
//leader () {
// ...mapGetters(['getLead'])
//}
}
watch: {
// 監(jiān)聽getters數(shù)據(jù) --- 'getLead'
// 解決state數(shù)據(jù)可以更新,但getters數(shù)據(jù)需要刷新才能更新的問題
getLead (val) {
this.leader = val
// this.leader是data中自定義的值,
// 賦值之后,一定要重寫之后的方法,
// 不然只是取值,頁面操作依然不會改變
this.showVip() // 這是我頁面上的方法名
}
},
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue Promise解決回調(diào)地獄問題實現(xiàn)方法
這篇文章主要介紹了Vue Promise解決回調(diào)地獄問題,總的來說這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過程。希望通過這道題能給你帶來一種解題優(yōu)化的思路2023-01-01
基于vue2框架的機器人自動回復mini-project實例代碼
本篇文章主要介紹了基于vue2框架的機器人自動回復mini-project實例代碼,具有一定的參考價值,有興趣的可以了解一下2017-06-06
webpack項目調(diào)試以及獨立打包配置文件的方法
下面小編就為大家分享一篇webpack項目調(diào)試以及獨立打包配置文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02
vite+vue3.0+ts+element-plus快速搭建項目的實現(xiàn)
本文將結(jié)合實例代碼,介紹vite+vue3.0+ts+element-plus快速搭建項目的實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-06-06

