青训营X豆包MarsCode 技术训练营|React

52 阅读3分钟

React 是一个用于构建用户界面的开源JavaScript库,由Facebook开发并维护。它专注于构建视图层,特别是单页应用(SPA),并且可以与其它库或框架结合使用以构建完整的应用。

1. 核心概念

  • JSX:React使用JSX(JavaScript XML)语法,允许你在JavaScript代码中写类似HTML的标记。
  • 组件:React应用由多个独立封装的组件构成,每个组件管理自己的状态。
  • 虚拟DOM:React使用虚拟DOM来提高性能,通过比较虚拟DOM的树来决定实际DOM的最小更新。
  • 状态(State)和属性(Props):组件的状态是私有的,而属性是由父组件传递给子组件的不可变数据。

2. 组件

  • 函数组件:使用JavaScript函数定义的组件,没有自己的状态。
  • 类组件:使用ES6类定义的组件,可以拥有自己的状态和生命周期方法。
  • 高阶组件(HOC):是一个函数,它接受一个组件并返回一个新的组件,用于代码复用、逻辑复用。

3. 状态和生命周期

  • 状态管理:组件的状态可以通过this.setState()(类组件)或useState(函数组件)来管理。
  • 生命周期方法:类组件有一系列的生命周期方法,如componentDidMountcomponentDidUpdatecomponentWillUnmount

4. Hooks

  • Hooks:允许在函数组件中使用状态和其他React特性,如useStateuseEffectuseContext等。

5. Context

  • Context:提供了一种在组件树中传递数据的方法,而不必在每个层级手动传递props。

6. 路由

  • React Router:是一个第三方库,用于在React应用中添加路由功能,支持导航、路由保护等。

7. 性能优化

  • shouldComponentUpdate:生命周期方法,用于控制组件是否应该重新渲染。
  • React.PureComponent:内置的PureComponent组件,通过浅比较props和state来避免不必要的渲染。
  • 使用Hooks优化:如useMemouseCallback来避免不必要的计算和重新渲染。

8. 代码分割

  • 懒加载:使用React.lazySuspense实现组件的懒加载,减少应用的初始加载时间。

9. 状态管理库

  • Redux:一个流行的状态管理库,用于管理应用中的状态,提供可预测的状态更新。
  • MobX:另一个状态管理解决方案,使用 observables 和 actions 来管理状态。

10. 测试

  • Jest:一个JavaScript测试框架,经常与React一起使用,用于单元测试和集成测试。
  • Enzyme:一个由Airbnb开发的React测试库,用于测试React组件。

11. 服务端渲染(SSR)

  • React Server DOM:允许在服务器上渲染React组件,可以提高SEO和首屏加载性能。

12. 工具和生态系统

  • Create React App:一个官方提供的脚手架工具,用于快速创建React应用。
  • TypeScript:React与TypeScript良好集成,提供类型检查和更好的开发体验。

13. 样式

  • CSS-in-JS:一种在JSX中直接编写CSS的方法,如styled-componentsemotion
  • CSS Modules:一种将CSS封装到特定组件的技术,避免全局样式冲突。

React的设计哲学强调组件的可复用性和可维护性,通过组件化和状态管理,React使得开发大型、复杂的前端应用变得更加容易。