react是什么呢?
一个用于创建可复用,可聚合web组件的js库
只提供MVC框架中的V层
为啥要用react?
首先是组件化而不是写一大堆HTML模板
将js逻辑与html标签紧密联系在一起并且极易理解
单项数据流
数据一旦更新,就直接重新渲染整个APP
这点是特别牛逼的
管理UI的状态并不那么容易
1. 修改DOM树
2.修改数据
3.接受用户的输入
4.异步API数据的请求
和传统的服务器端渲染相似
传统方式
1.浏览器请求页面
2.服务器请求数据库
3.将数据传给模板
4.模板渲染页面
react的渲染方式
1.用户输入
2.从API获取数据
3.将数据传给顶层组件
4.react将每个组件都渲染出来
好处?
每个组件是干啥的,很直观
结果更可以预测
组件之间的关系更清晰
一个react组件可以理解成一个独立的函数
接受数据(props),可复用,可以传递,返回结果
虚拟DOM
js虽然很快,但是每次对dom的操作都非常慢性能不够好
react重建dom树
找到与上个版本的dom的差异
计算出最新的dom更新操作
从操作队列中哦批量的执行dom更新操作