一、react 概述

159 阅读3分钟

1. react 简介

react是Facebook开发的一款js库。他们认为传统的MVC模式会使他们的项目变得更加复杂,导致代码变得不可预测,特别是模型和试图之间存在双向的数据流动。所以他们公司就自己开发了一套框架,在2013年5月开源了。

react主要是为了解决:构建那些数据会随时间改变的大型应用。

2. react 特点

  1. 虚拟DOM:传统操作DOM的方式是通过获取DOM节点,再进行操作,react使用了Virtual DOM来优化UI得更新过程,react会创建一个新得虚拟DOM,然后将其与之前得虚拟DOM进行比较,找出最小得变化。然后将其更新到真实得DOM中去。

  2. 组件化开发:将页面中的任何一个区域或者元素都可以看作是一个组件,在开发的时候将代码拆分出去,降低了耦合和代码的维护成本,并且提高了代码的复用性。

  3. 单向数据流:react采用单向数据流(也称为单向数据绑定),这意味着数据在组件之间通过props进行传递,使得数据的流动和改变变的可预测。

  4. JSX语法:在react中可以将html标签和js语法混合着写,最后通过babel去做转换。

虚拟DOM

传统的dom更新: 真实页面对应一个DOM树。在传统页面开发模式中,每次需要更新页面时,都要手动操作DOM来进行更新。

虚拟dom: DOM操作是非常昂贵的。我们都知道在前端开发中,性能消耗最大的就是DOM操作,而且这部分代码会让整体项目代码变得难以维护。

更新虚拟DOM并不会马上影响正式DOM,react会等到下次事件循环去更新。

优点:

  1. 性能优化:直接操作真实DOM代价是比较大的,尤其是涉及到大量节点更新的时候。虚拟DOM减少了真实DOM更新的频率。
  2. 跨平台性:虚拟DOM是一个与平台无关的概念,它可以映射到不同的渲染目标,比如浏览器的DOM或移动端 (React Native) 的原生UI。

react16之后发布了一种算法:React Fiber 其实就是分片,把一个耗时很长的任务分为很多的小片,这样就不至于唯一的线程被一直抢占,给其他的任务一个执行的机会。

3. react与传统MVC的关系

MVC一种Web开发的模式。

MVC包括:View(视图层,负责展示数据),Controller(控制层,),Model(数据层,应用程序的核心数据)。各部分之间的通信都是单向的。

View传送指令到Controller,Controller完成数据更新之后,要求Model改变,Model将更变后的数据发送到View。

react轻量级的视图层库

react不是一个传统的MVC框架,最多可以认为是MVC中的V(View)。甚至react并不认可这种开发模式。react将页面拆分为各个独立的小块,每个小块就是一个组件,组件之间组合嵌套就形成了页面。