react、angularjs、vue原理应用场景总结
2017-02-07 15:55
316 查看
React
如图:React的虚拟DOM的生成是可以在任何支持Javascript的环境生成的,所以可以在NodeJS或Iojs环境生成
虚拟DOM可以直接转成String
然后插入到html文件中输出给浏览器便可
React主要是对虚拟dom进行操作,比如当页面列表内容局部发生改变时React会对虚拟dom进行操作,React
的虚拟 DOM 使得两棵 DOM 结构的比对真正快起来,并且能确切的找到它们之间有什么变化. 如此,React 就能计算出更新 DOM 所需要做出的最小变更。比对虚拟 DOM 开销一点也不昂贵,因此我们想怎么比对都可以。当其准备好要对 DOM 进行实际的修改时,它只会进行最少量的操作。
React是组件化开发。非常适用于不是很复杂的移动端
AngularJS
AngularJS的工作原理是:HTML模板将会被浏览器解析到DOM中,
DOM结构成为AngularJS编译器的输入。AngularJS将会遍历DOM模板, 来生成相应的NG指令,所有的指令都负责针对view(即HTML中的ng-model)来设置数据绑定。因此, NG框架是在DOM加载完成之后, 才开始起作用的。它试用在大型的浏览器端,大型网站项目。
vuejs
深入响应式原理
大部分的基础内容我们已经讲到了,现在讲点底层内容。Vue.js 最显著的一个功能是响应系统 —— 模型只是普通对象,修改它则更新视图。这让状态管理非常简单且直观,不过理解它的原理也很重要,可以避免一些常见问题。
我们可以通过一张图来看一下,如下图所示:
![](http://static.galileo.xiaojukeji.com/static/tms/shield/vue-reactive.jpg)
图中的模型(Model)就是 data 方法返回的{times:1},视图(View)是最终在浏览器中显示的DOM。模型通过Observer、Dep、Watcher、Directive等一系列对象的关联,最终和视图建立起关系。归纳起来,Vue.js在这里主要做了三件事:
通过 Observer 对 data 做监听,并且提供了订阅某个数据项变化的能力。
把 template 编译成一段 document fragment,然后解析其中的 Directive,得到每一个 Directive 所依赖的数据项和update方法。
通过Watcher把上述两部分结合起来,即把Directive中的数据依赖通过Watcher订阅在对应数据的 Observer 的 Dep 上。当数据变化时,就会触发 Observer 的 Dep 上的 notify 方法通知对应的 Watcher 的 update,进而触发 Directive 的 update 方法来更新 DOM 视图,最后达到模型和视图关联起来。
相关文章推荐
- react、angularjs、vue原理应用场景总结
- AngularJs与ReactJS优劣及应用场景分析
- 【经验总结】C#常用线程同步方法应用场景和实现原理
- 【经验总结】C#常用线程同“.NET研究”步方法应用场景和实现原理
- 一起谈.NET技术,【经验总结】C#常用线程同步方法应用场景和实现原理
- AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
- HBase应用场景、原理与基本架构
- 【Hadoop入门学习系列之四】MapReduce 2.0应用场景和原理、基本架构和编程模型
- RunLoop总结:RunLoop的应用场景(四)
- Vue底层实现原理总结
- YARN应用场景、原理与资源调度
- React Native应用部署/热更新-CodePush最新集成总结(新)
- 《网络科学-原理与应用》要点总结3——小世界和无标度网络
- Redis应用场景总结
- PostgreSQL 9种索引的原理和应用场景
- Linux系统下内存申请应用的方法原理总结
- hadoop应用场景总结
- MapReduce2.0 原理、架构、应用场景
- vue 生命周期 应用场景 概述
- vue.js 对比 angularJS、react 前端框架