采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,今天面试遇到一个面试官,他问我组件渲染更新过程,我讲完以后,在说到watcher观察依赖,他问我vue怎么知道有哪些属性需要监听,我回答的是一开始初始化的时候就把定义好的属性传进去了,所以可以实现监听,现在想想好像回答错了,正确的答案是不是“ vue里面的watcher会监听模板里面用到的属性,每个属性初始化的时候都有get和set,在模板里使用了以后就会触发get,这样wacter就会知道自己监听了哪些 “?
课程里讲过,只有在模板中出现的 data 属性,才能被监听。
data 属性如果没在模板中出现过,则不会被监听。
你回顾一下这部分的内容。
非常感谢!
老师,您好,关于这部分我也有点不太明白,我理解是按照咱们那张响应式图, 在模版中出现的data属性,会收集依赖,加watcher,然后当set data,属性值发生改变,会notify render()去重新渲染页面。 可是咱们这里讲vue2响应式原理,Observer方法体里,是一次性把data里的所有属性都监听起来了呢?
初始化时,只是一次性的把 data 都设置了 set 和 get 函数,但此时 set 和 get 不一定会调用。例如 data 有一个属性 data.a ,但模板中没有使用 a 变量,那么 a 的 get 就不会被调用,然后依赖就不会被收集
登录后可查看更多问答,登录/注册
面向1-3年前端的框架及项目面试“刚需内容”
4.1k 1
2.6k 11
1.3k 11
1.2k 11