Vue 中 mixins 内使用 watch 的问题

1,561 阅读1分钟
export const moreFunction = {
  watch: {
    showSwitch(n) {
      this.showSwitchAgent = n;
      if(this.showSwitchWatch) this.showSwitchWatch( n );
    },

    showSwitchAgent(n) {
      if (!n) this.$emit("update:showSwitch", n);
      if(this.showSwitchAgentWatch) this.showSwitchAgentWatch( n );
    }
  },
  }
  • 本以为会和 其他属性一样 同名的 watch 项会被组件内的覆盖,结果实际使用后发现同名的 watch 将会被一起注册然后就会同时触发两个 watch 但当第三个组件再使用同名 watch 时会发现没有生效。百思不得其解,望大佬解答
  • 最后想到了一个曲线救国的方式,判断一个函数是否存在 存在则执行然后在 method 函数内进行操作