React
2013年诞生,来自Facebook.
- React不是一个完整的MVC框架(和Angular不同),只提供简单的View层解决方案,它的核心功能主要是构建组件(事实上就是为了组件开发而诞生的),并提供类似控制器的函数接口和生命周期函数。
- React非常轻,只提供组件化非常少的API,简化了一切可以简化的东西。
- React最主要的技能是:使用Virtual DOM技术,使得它的性能卓越,开销很小。
- React 使用JSX语法糖,JSX = JavaScript + XML。
Virtual DOM
- 定义:用JS对象的形式来表示DOM 和 DOM 之间的嵌套关系。
- 是React中的一个重要概念,在开发中,前端需要将后端输出的数据展示到页面中,同时要对用户的操作提供反馈,作用到UI上…这些都离不开DOM操作,但是,这些频繁的DOM操作会造成极大的资源浪费,也是性能瓶颈的主要原因。于是React引入了Virtual DOM,它的核心是通过DIFF算法比较改变前后的DOM区别,然后用最少的DOM语句对DOM进行操作。
- 比如说要进行这样的DOM转换(左边的DOM结构换成右边的DOM结构):
- 不用Virtual DOM的做法是:先删除四个li,再插入5个li。
- 使用Virtual DOM的做法是:通过计算比较两个结构的差异,发现只需改变四个li的innerHTML,再插入一个li即可。
Virtual DOM DIFF算法
- DIFF算法是一个比较计算层次结构区别的算法,主要是用来计算DOM之间的差异。比如下图:如果不使用Virtual DOM DIFF算法,就要删除ABC这三个节点,使用了Virtual DOM技术,只需移动ABC这三个节点的位置即可(使用appendchild追加)。
学习文档