React语言 | 青训营笔记

44 阅读2分钟

React 是一个由 Facebook 开发的用于构建用户界面的 JavaScript 库。它采用组件化的方式来构建 UI,使得开发者可以将 UI 拆分成独立的、可复用的组件,并通过组合这些组件来构建复杂的用户界面。--ChatGPT

class组件

  1. 构造函数中必须调用 super(props),否则组件将无法正常工作。
  2. 在 Class 组件中,this 的值可能会随着上下文的变化而变化。因此,在事件处理函数中,建议使用箭头函数或将函数绑定到组件实例中,以确保 this 始终指向组件实例。
  3. 在 Class 组件中,生命周期函数的执行顺序是固定的。例如,在 componentDidMount 函数中,可以进行 DOM 操作和网络请求等操作,而在 componentWillUnmount 函数中,可以进行一些清理工作,例如取消订阅事件、清除定时器等。
  4. 在 Class 组件中,状态的管理通常是通过 this.state 和 this.setState 方法来实现。当状态发生变化时,组件会重新渲染。需要注意的是,setState 方法是异步的,因此不能直接使用 this.state 来获取最新的状态值。

Hook: React 中常用的 Hook 包括:

useState:用于在函数组件中使用状态。它返回一个数组,第一个元素是当前状态的值,第二个元素是更新状态的函数。使用 useState 可以避免使用 Class 组件中繁琐的 this.setState 来管理状态。

useEffect:用于处理副作用。它可以在组件渲染后执行一些操作,例如订阅事件、请求数据等。使用 useEffect 可以避免使用 Class 组件中的生命周期函数来处理副作用。

useContext:用于在函数组件中使用上下文。它可以让子组件直接访问到父组件中的上下文数据,而无需通过 props 层层传递。

useRef:用于在函数组件中创建一个可变的引用。它可以用来访问组件中的 DOM 元素、保存上一次的状态等。

useMemo 和 useCallback:用于性能优化,可以避免不必要的计算或渲染。它们都可以缓存函数的返回值,从而避免重复计算。

useReducer:用于在函数组件中使用复杂的状态逻辑。它可以将状态的修改逻辑拆分成多个 reducer 函数,从而使得状态管理更加可控、可维护。

image.png

注意事项

Hook 规则 & 原理

  • 只能在 React 函数中调用 Hook
  • 在 React 函数组件中 或自定义 Hook 中调用
  • 自定义 Hook 必须以 use 开头
  • Hook 中的 state 是完全隔离的

image.png