这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天。
React的历史起源
React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。出发点是:用于开发数据不断变化的大型应用程序(Building large applications with data that changes over time)。
React的设计思路
1.声明式设计
声明式编程就是拿已经封装好的纯函数来实现目的。但是,由于这些纯函数有极强的稳定性,我们不关心内部需要干什么,只在乎结果如何。声明式编程的好处在于可读性强,方便维护。
2.单向数据流
遵循从高阶组件到低阶组件的单向数据流,React实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。但是由于单向数据传递会导致React根节点上面挂载很多状态,所以需要用状态管理库来解决。
3.虚拟DOM
React会在js中根据组件的虚拟dom结构来构建出完整的一套虚拟DOMapi,每一次的数据变化React都会重新构建一套完整的虚拟DOM和上一次的虚拟DOM利用diff算法计算出不同的地方,重新渲染,因为所有的操作都是在虚拟DOM中,很大程度避免了操作真实DOM,所以性能极高,且React还能将两次连续的数据变化合并到一起。
4.组件化开发
在React 中,一切皆为组件。通常将应用程序的整个逻辑分解为小的单个部分。 我们将每个单独的部分称为组件,组件可以是一个函数或者是一个类,接受数据输入,处理它并返回在 UI 中呈现的 React 元素。每个组件易于和其它组件一起使用,或者嵌套在另一个组件内部;每个组件都是具有独立功能的,它可以被使用在多个 UI 场景;每个小的组件仅仅包含自身的逻辑,更容易被理解和维护。