前端面经(一)

笔记1-谈谈对MVVM的理解。

谈MVVM首先就想起众所周知的MVC。

举例说什么是MVC,model,view,controller,从数据库中查询出来的数据层就是model层,通过controller层将数据进行增减整合,传给view层进行显示。前端的Mvc就是再进一步细化了Java中的view层。将后台返回的数据作为model层,将数据进行解析拼接等作为controller层,最后渲染到view层。随着前端对于逻辑控制的越来越轻量,MVVM作为MVC的一种补充,出现了。

在MVVM中,controller控制逻辑并不是直接没有了。而是将操作Dom的响应逻辑被SDK(vue内部封装实现)统一实现了。

以vue举例说明MVVM如何实现的双向绑定,在vue2.0利用ES5的object.defineProperty中的setter和getter方法绑定,backbone的发布订阅模式,从主动和被动的方式实现了view-model的双向绑定。在vue3.0中利用ES6的proxy和reflect来代替object.defineProperty的方式。大致原因defineProperty 只能对属性进行劫持,所以出现了需要递归遍历,新增属性需要手动 Observe 的问题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容