请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

vue监听数据

老师,今天面试遇到一个面试官,他问我组件渲染更新过程,我讲完以后,在说到watcher观察依赖,他问我vue怎么知道有哪些属性需要监听,我回答的是一开始初始化的时候就把定义好的属性传进去了,所以可以实现监听,现在想想好像回答错了,正确的答案是不是“ vue里面的watcher会监听模板里面用到的属性,每个属性初始化的时候都有get和set,在模板里使用了以后就会触发get,这样wacter就会知道自己监听了哪些 “?

正在回答

1回答

课程里讲过,只有在模板中出现的 data 属性,才能被监听。

data 属性如果没在模板中出现过,则不会被监听。

你回顾一下这部分的内容。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕侠6237982 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-11-24 10:14:44
  • 老师,您好,关于这部分我也有点不太明白,我理解是按照咱们那张响应式图, 在模版中出现的data属性,会收集依赖,加watcher,然后当set data,属性值发生改变,会notify render()去重新渲染页面。
    
    可是咱们这里讲vue2响应式原理,Observer方法体里,是一次性把data里的所有属性都监听起来了呢?
    回复 有任何疑惑可以回复我~ 2021-01-06 21:48:20
  • 初始化时,只是一次性的把 data 都设置了 set 和 get 函数,但此时 set 和 get 不一定会调用。例如 data 有一个属性 data.a ,但模板中没有使用 a 变量,那么 a 的 get 就不会被调用,然后依赖就不会被收集
    回复 有任何疑惑可以回复我~ 2021-01-06 22:22:52
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信