React 的历史与应用及设计思路 | 青训营笔记

42 阅读3分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 5 天

一、本堂课重点内容:

React 的历史与应用

  1. 前端应用开发历程
  2. 移动原生应用开发
  3. 结合 Electron 的桌面应用开发

React 的设计思路

  1. UI 编程痛点
  2. 响应式与转换式
  3. React 设计与实现 - 组件化
  4. React 设计与实现 – 状态归属问题
  5. React 设计与实现 – 生命周期

二、详细知识点介绍:

React 的历史与应用

React的历史

2010年Facebook在其php生态中,引入了xhp框架,首次引入了组合式组件的思想,启发了后来的 React 的设计。

2011年Jordan Walke创造了FaxJS,也就是后来的React原型

2012年在Facebook收购nstagram后,该FaxJS项目在内部得到使用,Jordan Walke基于 FaxJS的经验,创造了React

2013年React正式开源,在2013JSConf上Jordan Walke介绍了这款全新的框架

2014年到今天生态大爆发,各种围绕React的新工具/新框架开始涌现

React的应用

  1. 可以用于前端应用的开发,具体指代一些网页版的应用,例如Facebook、instagram、Netflix的网页版的开发便使用了react框架。
  2. 可以用于移动原生应用开发,就是我们常见的移动端的APP,例如instagram和Oculus、Discord。
  3. 结合Electron可以进行桌面应用开发,我们平时使用电脑时的一些桌面应用便是使用React开发的。

React 的设计思路

UI 编程痛点

在使用原生JS来编写UI时还有一些不足的地方,比如就有这么几个痛点: 1.自己声明的变量,当他们需要更新的时候,UI无法自动更新,要手动地去调用DOM接口来进行更新才能更新UI。 2.原生JS缺少了组件化的概念,没有对代码层面进行封装和隔离,缺少了组件化,这样也不利于写代码的效率。 3.UI有很多数据依赖关系,使用原生JS就需要手动去维护。当依赖链路过长的时候,会遇到“Callback Hell”。

响应式与转换式

响应式系统:监听事件,消息驱动、监控系统、UI界面

响应式编程:解决UI编程的几个痛点,能够让状态更新的时候UI自动更新;前端代码能够组件化,可以复用,提高效率;状态之间的互相依赖关系只需声明即可,减少手动维护。

转换式系统:给定【输入】求解【输出】、编译器、数值计算

组件化

将页面拆分成一个一个的组件,通过调用组件来形成最后的页面,在其他页面也可以复用其中的组件,减少了代码的重复。

总结:组件是组件的组合,也可以说是原子组件;组件内拥有状态,外部无法看见;父组件可以把状态传入到组件内部。

三、课后个人总结:

在本节课中,了解了React的历史、应用和设计思路。当我们使用一个工具的时候,要明白这个工具为何会诞生,才能理解他使用至今的意义何在,这有利于我们去学习一个新的知识;而了解应用能够提高实践能力,如果只知道知识不会应用也是不够的。在了解的React的设计思路后,我对原生JS的一些缺陷也有了了解,对JS有了更进一步的了解,而对React也更加清楚,知道它是为何而生,使用他的意义何在。