千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)

P13 Vue高频面试题
1、单向数据流
父组件的数据可以主动传递给子组件,父组件的值一旦发生改变会再次将数据传递给子组件,若子组件需要传值给父组件,可以利用事件的触发;只能从一个方向去修改
2、双向数据绑定
定义:视图发生改变的时候,数据也会同步改变,数据发生改变的时候,视图也会同步改变
3、object.defineProperty的缺点
无法监听 es6的Set、Map的变化、无法监听Class类型的数据、数组中的新增与删除页无法监听、属性的新增与删除也无法监听
4、对 MVC , MVP , MVVM 的理解
MVC:模型(Model)、视图(View)和控制器(Controller),用户操作视图(View),视图(View)捕获到操作之后将权力给控制器(Controller),控制器(Controller)会对权力做预处理,然后再调用模型(Model)提供的接口,模型(Model)会通过观察者模式通知视图(View)
MVVM:提供了双向数据绑定机制,视图模型(ViewModel)解决了手动关心视图(View)与 模型(Model)同步的问题,提供了双向绑定的机制
MVP:视图和模型之间的通信是双向的,但是通过展示者作为中间人进行协调;视图将用户的操作和事件传递给展示者,展示者处理这些操作并更新模型的状态;模型的变化通过展示者传递给视图,然后视图根据模型的变化更新显示
4、vue响应式数据原理:
vue的响应式实现主要利用 object.defineProperty的方法里面的 setter 与 getter 方法的观察者模式来实现。
proxy的优势:Proxy可以直接监听对象而非属性,可以直接监听数组的变化,proxy返回的是一个新对象,我们可以只操作新的对象达到目的, object.defineProperty 只能遍历对象属性直接修改
5、对比 jQuery、Vue 有什么不同:
jQuery专注视图层,通过操作 DOM 去实现页面的逻辑渲染
Vue专注数据层,数据驱动视图,通过数据的双向绑定,最终表现在 DOM 层,减少 DOM 操作,Vue使用组件化的思想,提高开发效率,方便复用,便于协同开发