这是我参与「第五届青训营 」伴学笔记创作活动的第8天。
React 组件使用一个名为 render() 的方法,接收输入的数据并返回需要展示的内容。在示例中这种类似 XML 的写法被称为 JSX。被传入的数据可在组件中通过 this.props 在 render() 访问。 使用 React 的时候也可以不使用 JSX 语法。
01.React 的历史与应用
- 前端应用开发,如Facebook,Instagram,Netflix 网页版。
- 移动原生应用开发,如 Instagram,Discord,Oculus.
- 结合 Electron,进行桌面应用开发
- 构建3D场景、VR、构建游戏
02.React 的设计思路
- React 的设计思路-UI编程痛点
- 状态更新,UI 不会自动更新,需要手动地调用DOM进行更新。
- 欠缺基本的代码层面的封装和隔离,代码层面没有组件化。
- UI之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到“allback Hel”。
转换式系统:给定[输入] 求解[输出],常用于编译器、数值计算 响应式系统:统监听事件,消息驱动,常用于监控系统、UI 界面
框架
** 事件——执行既定的回调——状态变更(——UI变更) **
1.状态更新,UI 自动更新
“状态更新,UI 不会自动更新,需要手动地调用 DOM 进行更新。
2.前端代码组件化,可复用,可封装
“欠缺基本的代码层面的封装和隔离,代码层面没有组件化。
3.状态之间的互相依赖关系,只需声明即可
“UI之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到Callback Hell”。
组件化
- 组件是组件的组合/原子组件
- 组件内拥有状态,外部不可见
- 父组件可将状态传入组件内部
- React 是单向数据流 父组件给子组件传送给信息
组件代码
- 组件内部拥有私有状态 State
- 组件接受外部的 Props 状态提供复用性
- 根据当前的 State/Props,返回一个 UI。