欢迎光临散文网 会员登陆 & 注册

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

2023-07-16 15:19 作者:EDG替补分析师  | 我要投稿

Vue部分面试题总结----->

1. Vue2的响应式原理Object.defineProperty有什么缺点

  1. 无法监听ES6的Set, Map变化
  2. 无法监听Class类型的数据
  3. 属性的新加或者删除也无法监听
  4. 数组元素的增加和删除也无法监听

2. MVC

用户对View操作以后, View捕获到这个操作, 会把处理的权利交移给Controller, Controller会对来自View数据进行预处理,决定当前调用哪个Model接口, 然后由Model执行相关的逻辑业务逻辑(数据请求);

当Model变更了以后, 会通过观察者模式(Observer Pattern)通知View, View通过观察者模式收到Model变更的消息以后, 会向Model请求最新的数据, 然后重新更新界面

总结: 把业务逻辑和展示逻辑分离,模块化程度高,但由于View是强依赖特定的Model,所以View无法组件化,无法复用

3. MVP

和MVC模式一样,用户对View的操作都会从View移交给Presenter, Presenter会执行相应的应用程序逻辑, 并且对Model进行相应的操作; 而这时候Model执行完业务逻辑以后, 也是通过观察者模式把自己变更的消息传递出去, 但是是传递给Presenter而不是View, Presenter获取到Model变更的消息以后, 通过View提供的接口更新界面

总结: View不依赖Model, View可以进行组件化, 但Model → View的手动同步逻辑,非常麻烦,维护困难

4. MVVM

MVVM的调用关系和MVP一样, 但是在ViewModel当中会有一个叫Binder, 或是Data-binding engine的东西, 只需要在View的模版语法中, 指令式地声明View上的显示的内容是和Model的那一块数据绑定的; 当ViewModel队进行Model更新的时候, Binder会自动把数据更新到View上去, 当用户对View进行操作(如: 表单输入), Binder也会自动把数据更新到Model上去, 这种方式称为: Two-way data-binding, 双向数据绑定; 可以简单而不恰当地理解为一个模版引擎, 但是会根据数据变更实时渲染

总结: 解决了MVP大量的手动View和Model同步的问题, 提供双向绑定机制, 提高了代码的可维护性, 对于大型的图形应用程序, 视图状态较多, ViewModel的构建和维护的成本都会比较高

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

分享到微博请遵守国家法律