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