Vuex,在 Vue 组件中监听 Vuex 状态变化,使用watch监听Vuex中的数据
    		       		warning:
    		            这篇文章距离上次修改已过446天,其中的内容可能已经有所变动。
    		        
        		                
                在 Vue 组件中,你可以使用 computed 属性结合 Vuex 的 mapState 或 mapGetters 辅助函数来监听 Vuex 状态的变化。另外,你也可以使用 watch 属性来监听这些状态的变化。
以下是一个使用 computed 和 watch 监听 Vuex 状态变化的示例:
<template>
  <div>{{ myState }}</div>
</template>
 
<script>
import { mapState, mapGetters } from 'vuex';
 
export default {
  computed: {
    // 使用 mapState 生成计算属性
    ...mapState({
      myState: state => state.myModuleName.myState
    }),
 
    // 或者使用 mapGetters 生成计算属性
    ...mapGetters(['myModuleName/myGetter'])
  },
 
  watch: {
    // 直接监听计算属性
    myState(newVal, oldVal) {
      // 处理状态变化的逻辑
      console.log(`State changed from ${oldVal} to ${newVal}`);
    },
 
    // 或者直接监听 Vuex 的状态
    '$store.state.myModuleName.myState'(newVal, oldVal) {
      // 处理状态变化的逻辑
      console.log(`State changed from ${oldVal} to ${newVal}`);
    }
  }
};
</script>在这个例子中,myState 是 Vuex 模块 myModuleName 中的一个状态。我们使用 mapState 创建了一个计算属性 myState,然后在 watch 中监听这个计算属性的变化。当 Vuex 中的状态发生变化时,watch 中的监听函数会被触发。
评论已关闭