vue.js - 如何观察父组件的子属性变化

标签 vue.js vuejs2

我正在使用日期选择器组件库,我想观察该组件的属性何时发生变化。

我试过这个:

  watch: {
    '$refs.picker.popupVisible': {
      handler (new_value) {
        console.log('executed')
      },
      deep: true
    }
  }

还有这个:

  computed: {
    picker () {
      console.log(this.$refs.picker.popupVisible)
      return this.$refs.picker.popupVisible
    }
  }

我知道解决方案将是 vue.js hack,因为这不是正确的方法。如果我可以访问子组件,我会向父组件发出事件,但不幸的是我没有。

最佳答案

我在使用有一些限制的库时遇到了类似的问题。

不幸的是,您的观察器将无法工作。您必须使用函数观察器才能使其工作。并且您必须在mounted Hook 中使用它。

  mounted() {
    this.$watch(
      "$refs.picker.popupVisible",
      (new_value, old_value) => {
         //execute your code here
      }
    );
  }

我也有一个例子。请take a look here

关于vue.js - 如何观察父组件的子属性变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51225378/

相关文章:

vue.js - vue-router - 如何在 beforeRouteEnter 中中止路由更改

javascript - 我如何从另一个文件vue添加图像

javascript - 如何正确选择所有复选框?

javascript - 如何从具有多个组件的文件中导入组件

javascript - 即使在 Javascript 中匹配后,过滤器也不会返回任何内容

vue.js - 如何在 nuxt SSR 中生成 txt 和 xml 文件?

javascript - Vue router 如何在页面加载时获取懒加载模块的当前路由路径?

vue.js - 未使用 Vue 资源根选项?

javascript - Vue v-on :click. native 在 JSX 中?

image - vue-advanced-cropper 图像裁剪尺寸比原始尺寸大