react优势
1.组件化,而不是写一大堆html模版
js逻辑和html标签紧密连接并且及易理解
2.单项数据流
数据一旦更新,就直接渲染整个app
以往的方式:管理UI的状态并不简单
修改dom树 修改数据 接受用户的输入 异步API的数据请求
与传统的服务器端渲染相似
传统方式
1.浏览器请求页面 2.服务器请求数据库 3.将数据传给模版 4.模版渲染页面
react的渲染方式
1.用户输入 2.从API获取数据 3.将数据传给顶层组件 4.react将每个组件渲染出来
好处,不再有(1.魔法般的双向数据绑定2.数据模型的肮脏检查(dirty checking)3.确切的dom操作)
有(每个组件是干啥的很直观,结果更可以预测,组件之间的关系更清晰)
一个react组件可以理解成一个独立的函数(接受参数,可复用,可以传递,返回结果(渲染组件))
3.虚拟的dom树
1.react重建dom树 2.找到和上个版本的dom差异 3.计算出最新的都dom更新操作
4.从操作队列中批量的执行dom更新操作
可以在nodejs中运行(服务器端)
1.服务器和客户端共用逻辑 2.seo友好,便于生成缓存的单页应用3.直接渲染特定的页面而不用渲染整个app