如何在元件中監聽Vuex的資料變化
分析: 此題考查Vuex的應用及 Vue內部的監聽資料變化的機制
解答
: 首先確定 Vuex是為了解決什麼問題而出現的 ? Vuex是為了解決元件間狀態共享而出現的一個框架.其中有幾個要素 是組成Vuex的關鍵, state(狀態) mutations actions ,
state 表示 需要共享的狀態資料
mutations 表示 更改 state的方法集合 只能是同步更新 不能寫ajax等非同步請求
actions 如果需要做非同步請求 可以在actions中發起 然後提交給 mutations mutation再做同步更新
也就是 state 負責管理狀態 , mutation負責同步更新狀態 action負責 非同步獲取資料 同提交給mutation
所以 元件監聽Vuex資料變化 就是 監聽 Vuex中state的變化,
第一種方案
我們可以在元件中通過元件的 watch方法來做, 因為元件可以將state資料對映到 元件的計算屬性上,
然後 監聽 對映的計算屬性即可 程式碼如下
// vuex中的state資料 state: { count: 0 }, // A元件中對映 state資料到計算屬性 computed: { // this.$store.state.count // mapState 把全域性 count 變成 可以直接使用的 資料 ...mapState(['count']) } // A元件監聽 count計算屬性的變化 watch: { // watch 可以監聽 data 資料 也可以監聽 全域性 vuex資料 count () { // 用本身的資料進行一下計數 this.changeCount++ } }
第二種方案
vuex中store物件本身提供了watch
函式 ,可以利用該函式進行監聽
-
watch(fn: Function, callback: Function, options?: Object): Function
響應式地偵聽 fn
的返回值,當值改變時呼叫回撥函式。fn
接收 store 的 state 作為第一個引數,其 getter 作為第二個引數。最後接收一個可選的物件參數列示 Vue 的 vm.$watch
方法的引數。
程式碼
created () { this.$store.watch((state, getters) => { return state.count }, () => { this.changeCount++ }) }
相關文章
- vue中如何監聽vuex中的資料變化Vue
- 如何在MyEclipse中監聽TCP/IP資料傳輸EclipseTCP
- VB.NET中監視資料夾的變化 (轉)
- 如何在VC程式碼中監聽ArcEngine的COM事件C程式事件
- RAC中監聽通知的坑!
- vuex中的state在元件中如何監聽?Vue元件
- flutter中監聽鍵盤Flutter
- Canal-監聽資料庫表的變化資料庫
- flutter 中監聽滑動事件Flutter事件
- 如何在vue中監聽scroll,從而實現滑動載入更多Vue
- Redis中監聽key過期通知Redis
- Vue 子元件不重新整理,父元件資料改變子元件不變化Vue元件
- oracle中監聽器show命令備記Oracle
- SQL Server CDC配合Kafka Connect監聽資料變化SQLServerKafka
- 自定義元件-資料監聽器元件
- 11.2資料庫監聽的改變資料庫
- 微信小程式,實現 watch 屬性,監聽資料變化微信小程式
- Vue遞迴元件+Vuex開發樹形元件Tree--資料模組Vue遞迴元件
- vue 父元件在created中傳值給子元件,子元件去監聽props變化Vue元件
- [Android元件化]元件化資料分享Android元件化
- 手撕Vuex-模組化共享資料上Vue
- 手撕Vuex-模組化共享資料下Vue
- vue 監聽路由變化Vue路由
- 在應用程式中監視剪貼簿的變化和內容 (轉)
- linux系統中監聽埠概念是什麼?Linux
- JMETER中監聽器無結果解決辦法JMeter
- 如何監聽陣列變化?陣列
- 安卓監聽網路變化安卓
- MutationObserver監聽DOM變化示例Server
- React和Vue中,是如何監聽變數變化的ReactVue變數
- vue 如何在迴圈中 "監聽" 的繫結v-model資料Vue
- 論如何監聽一個物件的變化物件
- 用這招監聽 Vue 的插槽變化Vue
- vue是如何監聽陣列變化的Vue陣列
- Swift_監聽UITextField內容的變化SwiftUI
- localeStorage 當前標籤頁變化監聽不到,只能監聽不同標籤頁變化,自己寫方法監聽
- 通過專案梳理vuex模組化 與vue元件管理Vue元件
- 1.vuex是什麼? 2.vuex的核心概念;(vuex的屬性;vuex的資料傳遞流程;) 3.為什麼要用vuex?Vue