代码之家  ›  专栏  ›  技术社区  ›  ekjcfn3902039

观看vuex商店

  •  3
  • ekjcfn3902039  · 技术社区  · 5 年前

    export default {
      namespaced:true,
      state: {
        data: [],
      }
      // actions, mutations, etc
    }
    

    我想知道新数据什么时候到商店。

    肌肉疗法

    export default {
      computed: {
        getFoo() {
          return this.$store.state.MyStore.data;
        },
      },
      watch: {
        getFoo(newValue, oldValue) {
          console.log(`New ${JSON.stringify(newValue)}`);
          console.log(`Old ${JSON.stringify(oldValue)}`);
        }
      },
    }
    

    但是,控制台总是将新数据和旧数据显示为同一对象。这是正确的语法吗?

    仅供参考-当新项添加到vuex存储数据时,我需要捕获,因为我将它们直接添加到OpenLayers映射中。

    1 回复  |  直到 5 年前
        1
  •  2
  •   Steven Spungin    5 年前

    您可以这样直接观看商店属性:

    watch:{
      '$store.state.data'(value, oldValue) {
      }
    }
    

    还可以使用“deep”和“handler”语法来监视对象上的子属性。

        2
  •  1
  •   ekjcfn3902039    5 年前

    this.$store.subscribe((mutation,state) => {
      if (mutation.type === 'myStore/MyMutation') {
        const myData = mutation.payload.data.forEach(x=> etc...
      }
    });