在父组件中需要根据子组件data的变化做一些操作(不能修改子组件),但watch不到变化

发布于 2022-09-11 22:01:10 字数 276 浏览 7 评论 0

现在做法:
在父组件:

computed: {
    // 滚动的距离
    moveY: function () {
      return this.$refs.scrollbar.moveY || 0
    }
  },
watch: {
    moveY (val) {
      console.log(val)
    }
  }

问题:this.$refs.scrollbar.moveY值变化了,但console.log(val)没有输出

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

唯憾梦倾城 2022-09-18 22:01:10
mounted() {
    this.$watch('$refs.scrollbar.moveY', console.log)
}

这样写吧

温暖的光 2022-09-18 22:01:10

子组件值变化的时候,$emit('move-y-change',value) 到父组件.

如果你用 $refs.scrollbar.moveY,父子组件就多了一个隐性的耦合。那样以后子组件的 moveY 被改掉了,你都不知道。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文