- 浏览器如何解析并渲染网页的?
浏览器将html代码按深度优先遍历,生成DOM数。
然后解析css,构建渲染树。
然后浏览器会计算各个节点位置,将各节点渲染到页面。
- vue采用了什么模型,和MVC模型有什么区别?
MVVM模型和MVC
MVVM(Model-View-ViewModel),即模型-视图-视图模型。
模型:后端传递的数据(对象,数组等)
视图:可见页面
视图模型(ViewModel):vue实例化对象,数据的双向绑定(是核心),
有两个方向:
模型转化成视图:数据绑定(方式),后端传递的数据转化成可见的页面。
视图转化成模型:DOM事件监听,将可见的页面转化成后端传递的数据。
总结:在MVVM的框架下 视图和模型 是不能直接通信的。它们通过ViewModel来通信,
ViewModel,像是一个观察者,到数据发生改变,ViewModel能监听到这种变化,
然后通知对应的视图层作自动更新。
而当用户操作视图时,ViewModel也能监听到视图的变化,
然后通知数据做改动,这实际上就实现了双向绑定
MVC(Model-View-Controller),即 模型-视图-控制器
MV和MVVM里的一样
控制器(C):页面业务逻辑
使用MVC的目的就是将M和V的代码分离,MVC是单向通信,View和Model,
必须通过Controller来承上启下。
ViewModel存在目的在于抽离Controller中展示的业务逻辑,
而不是替代Controller,其它视图操作业务等还是应该放在Controller中实现。
MVVM和MVC的区别 并不是VM完全取代了C,ViewModel存在的目的在于抽离Controller中展示的业务逻辑,
而不是替代Controller。其他视图操作还是应该放在Controller中实现,也就是说MVVM实现的是业务
逻辑组件的重用。
由于MVC出现的时间比较早,前端并不那么成熟,很多业务逻辑也是在后端实现,
所以前端并没有真正意义上的MVC模式。
- VUE最独特的特性?
响应式系统VUE是响应式的(reactive),也就是说当我们的数据变更时,
VUE会帮你更新所有网页中用到它的地方。