返回

React 组件:深入理解 Props 和 State

前端

在 React 生态系统中,组件是 UI 构建模块的基石。它们通过接收输入(称为 props)并返回 UI 内容的 JSX 片段来运作。了解 props 和 state 如何在组件的生命周期中发挥作用至关重要。

Props:不可变的组件输入

props(Properties 的缩写)是传递给组件的不可变对象。它们代表了组件的外部状态,由父组件设置。props 用于初始化组件并对其行为进行微调。

通过声明 props 类型,您可以确保传入正确的类型数据。例如:

const MyComponent = (props: { name: string, age: number }) => {
  return <h1>{props.name} is {props.age} years old.</h1>;
};

State:可变的组件状态

与 props 不同,state 是组件私有的可变对象,用于存储内部状态。它允许组件随着时间的推移更改其外观和行为。

通过使用 useState 钩子创建 state:

const [count, setCount] = useState(0);

组件的生命周期

组件遵循以下生命周期:

  • 挂载: 当组件首次插入 DOM 时调用。
  • 更新: 当 props 或 state 发生变化时调用。
  • 卸载: 当组件从 DOM 中移除时调用。

最佳实践

使用 props 和 state 时,请遵循以下最佳实践:

  • 使用 props 传递不可变的数据,而使用 state 保存可变的状态。
  • 通过声明 props 类型强制执行数据类型。
  • 只在必要时更新 state,并使用适当的副作用钩子(例如 useEffect)。

技术指南:编写一个计数器组件

使用 props 和 state 创建一个计数器组件:

  1. 创建 props 类型:
interface CounterProps {
  initialValue: number;
}
  1. 定义组件:
const Counter = (props: CounterProps) => {
  const [count, setCount] = useState(props.initialValue);

  const incrementCount = () => {
    setCount(prevCount => prevCount + 1);
  };

  return (
    <>
      <h1>Count: {count}</h1>
      <button onClick={incrementCount}>Increment</button>
    </>
  );
};

结论

通过理解 props 和 state 在 React 组件中的作用,您可以构建可重用、可维护且响应式的前端应用程序。通过遵循最佳实践,您可以确保组件的效率和可靠性。