1、在开发过程中watch监听vuex中的属性后发现watch执行两遍,或者watch监听其他属性后执行了两次

问题描述:当公共组件,选人中组件被一个页面多次引用时,在中监听vuex中的变量,发现watch被执行了两次。

watch: {
   //vxDialogData被执行了两次
   vxDialogData(val, oldVal) {
    if (Object.keys(val).length) {
         this.onCheckScope([val.node], val); }
         },
   }

解决问题方法:created中使用console

//在created生命周期中输出this,看是不是打印两个实例

created() {

    this.$watch("vxDialogData", (newVal, oldVal) => { console.log("@@@@", this); });

}

问题剖析:ref获取的组件在同一个根组件中被引用两次导致,在使用refs获取组件内部的方法时要注意多次使用组件,导致组件内部的方法会被挂载多次。

创建人:yinyanting

快速跳转