前端培训:Vue 面试题分享

1 。请说一下响应式数据的理解?核心答案:【前端培训:Vue 面试题分享】数组和对象类型当值变化时如何劫持到 。对象内部通过defineReactive方法,使用Object 。defineProperty将属性进行劫持(只会劫持已经存在的属性),数组则是通过重写数组方法来实现 。
这里在回答时可以带出一些相关知识点(比如多层对象是通过递归来实现劫持,顺带提出Vue3中是使用proxy来实现响应式数据)
补充回答:内部依赖收集是怎样做到的,每个属性都拥有自己的dep属性,存放他所依赖的watcher,当属性变化后会通知自己对应的watcher去更新 (其实后面会讲到每个对象类型自己本身也拥有一个dep属性,这个在$set面试题中在进行讲解)
这里可以引出性能优化相关的内容 (1)对象层级过深,性能就会差 (2)不需要响应数据的内容不要放到data中 (3) Object 。freeze() 可以冻结数据

    推荐阅读