react、angularjs、vue原理应用场景总结
2017-04-04 16:22
218 查看
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 最显著的一个功能是响应系统 —— 模型只是普通对象,修改它则更新视图。这让状态管理非常简单且直观,不过理解它的原理也很重要,可以避免一些常见问题。
我们可以通过一张图来看一下,如下图所示:
图中的模型(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的虚拟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 最显著的一个功能是响应系统 —— 模型只是普通对象,修改它则更新视图。这让状态管理非常简单且直观,不过理解它的原理也很重要,可以避免一些常见问题。
我们可以通过一张图来看一下,如下图所示:
图中的模型(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#常用线程同步方法应用场景和实现原理
- SQL到NoSQL概览性总结之一 数据库应用场景选型
- 关于Java的数据结构HashMap,ArrayList的使用总结及使用场景和原理分析
- interface vs abstract class 应用场景总结
- 《网络科学-原理与应用》要点总结1——图论
- Zookeeper原理及应用场景
- java ThreadLocal(应用场景及使用方式及原理)
- Linux系统下内存申请应用的方法原理总结
- strom学习总结——我从三个纬度开始:maven工程、徐明明博客和应用场景。
- 数据库系统原理及其应用总结---ShinePans
- 学习windows 应用层 inline hook 原理总结
- java_集合体系之List体系总结、应用场景——07
- 近期 MySQL 总结binlog-format=row 的应用场景和mysql shutdown
- 教你省钱!淘宝总结节能服务器应用场景
- 《网络科学-原理与应用》要点总结3——小世界和无标度网络
- 《Oracle物化视图实战手册》-原理讲解-应用场景-实战