react开发一年多了,记得第一次接触react时在老家没有网,打开一个不知道什么时候clone的react tutorial,看了半天一头雾水。那时候html、js、css分离的思想根深蒂固,感觉react这么做没有道理。
后来react的热度一路攀升,存在即合理,我开始深入研究react,重新审视它的思想。
从基础框架、路由,到受到不少追捧的redux,到如雷贯耳的react native,对react开发有了基本的认识。react不提供一站式的解决方案,像angular,像python的django,在我看来,它的特点有二:
其一,它是一个底层的js到dom映射的引擎,数据改变 -> 刷新UI, 难得之处在于这一操作不需开发者完成。只要改变相关数据,react会用据称非常高效的dom diff 算法刷新UI,相比于传统的js、jq直接操作dom要快的多,也无需关注过多细节。这一特性让react跨平台开发成为可能。
其二,特立独行的组件化开发思想。据我了解,最初web开发由后端模板生成页面文件发到浏览器。会有服务端压力过大、浪费流量、前端太闲:P的问题。继HTML5推出后,W3C提倡页面、样式和脚本分离,然而,react反其道而行之,将相同功能封装为组件,与以往的页面模板类似,达到组件复用的作用。并且,RESTful思想的提出,后端只提供API调用,将业务逻辑摆在前端执行,配合react天衣无缝。如今,前后端分离、组件化开发的思想十分流行。对于大型项目,redux这种状态管理工具也非常受用。
react带来的不可变数据