1、简介
React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。
React主要用于构建UI。你可以在React里传递多种类型的参数,如声明代码,帮助你渲染出UI、也可以是静态的HTML DOM元素、也可以传递动态变量、甚至是可交互的应用组件。
React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它。
2、三大框架比较
体系结构、渲染、DOM、数据绑定、调试、作者……
-
angular
-
2009年1.x 使用MVC架构,学习曲线比较陡;2.x使用MVVM架构开始出现组件,支持组件和TS
-
ajax交互是限制的,内部包含了$http
-
-
vue2
-
使用MVVM架构
-
ajax交互没有限制,但推荐axios、vue-resource等
-
-
react
-
更专注于View层
-
实现大功能需要使用插件
-
- fluter:
- 是谷歌高性能、跨端的ui框架
- 主要用于移动端
3、特点
-
优势
-
声明式设计 −React采用声明范式,可以轻松描述应用。
//命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。类似jquery 操作DOM,创建一个页面,一点点的告诉DOM 怎么去挂载,你要怎么去做;JQ\原生 都是命令式编程,都是在做DOM 操作。
//声明式编程:告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。 -
高效 −React通过对DOM的模拟,最大限度地减少与DOM的交互。
//1.虚拟DOM(Virtual DOM)
用js 对象来模拟页面上的DOM 和DOM嵌套**实现DOM 元素的高效更新
//2.Diff 算法
tree diff
component diff
element diff
-
灵活 −React可以与已知的库或框架很好地配合。
-
JSX − JSX 是 JavaScript 语法的扩展。React 开发不一定使用 JSX ,但我们建议使用它。
-
组件 − 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。模块化
vue的组件是通过.vue 文件(template/script/style)实现的
react中没有像vue中那样的模板文件,在react里一切都是以js来实现的
-
单向响应的数据流 − React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。
-
-
劣势
-
学习成本很高,学习曲线很陡
-
react本身能做的事并不多,想做大东西必须得用react插件(全家桶)
-