1.关于React的基本介绍

16 阅读3分钟

1.React的起源和发展

源于 FaceBook 的内部项目,由于该公司对市场的 JAvaScript MVC 框架不是很满意,于是开发了架设 Instagram 的网站。 在2013年的5月开源。

2.React与传统的MVC的关系

React 不是一个完整的 MVC 框架,最多可以认为是 MVC 中的 V(view),甚至 React 并不非常认可MVC开发模式。 React构建页面UI的库。(React将界面分成各个独立的小块,每一块就是组件,这些组件之间可以组合,嵌套成为我们想要的页面)

3.React 高性能的体现:虚拟DOM和React Fiber

虚拟DOM的机制: 在浏览器端用JavaScript实现了一套DOM API。基于React进行开发时,所有的DOM构造都是通过虚拟DOM进行,每当数据变化时,React都会重新构建整个DOM树,之后React将当前整个DOM树和上一次的DOM树进行对比,得到DOM结构的区别,然后仅仅将需要的变化的部分进行实际的浏览器DOM更新。而且React能够批处理虚拟DOM的刷新,在一个事件循环内的两次数据变化会被合并。尽管每次都需要构造完整的虚拟DOM树,但是因为虚拟DOM是内存数据,性能是极高的,而对实际DOM进行操作的仅仅是Diff,因而能达到提高性能的目的。

React 16之后发布的一种React的核心算法:React Fiber(React Fiber是对核心算法的一次重新实现,之前用的是Diff算法)

React Fiber: 把一个耗时长的任务分成很多小片,每一个小片的运行时间很短,虽然总时间依然很长,但是在每一个小片执行完成之后,都给其他任务一个执行的机会,这样唯一的线程就不会被独占,其他任务也有运行的机会。

React 16.8版本之后发布React hooks ,就出现三种写法

1.经典的class写法

2.Function函数式写法

3.hooks钩子函数式写法

4.React的特点和优势

1.虚拟DOM

最原始的操作DOM的方式是通过document.getElementById()的方式,这样的过程实际上是先读取HTML的DOM结构,将结构转换成变量,再进行操作。

Reactjs定义了一套变量形式的DOM模型。操作和换算直接在变量中,这样减少了操作真是的DOM。性能真是相当的高,和主流MVC框架有本质的区别,并不和DOM打交道。

2.组件系统

组件指同时包含HTML、CSS、JS、image元素的聚合体

React开发的核心就是将页面拆分成若干组件,并且React一个组件中同时耦合了CSS、JS、image,这种模式整个颠覆过去的传统的方式

3.单项数据流

Reactjs的核心内容就是数据绑定。

数据绑定指只要将一些服务端的数据和前端页面绑定好,开发者只关注实现业务就行了

4.JSX语法

在React中,使用render函数构建组件的DOM结构性能较高,因为省去了查找和编译模板的过程,但是在Render中利用createElement创建结构的时候代码可读性较低,较为复杂,利用JSX语法在Render中创建DOM,解决这个问题,但是前提是需要使用工具来编译JSX。