You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React JS中如何使用props优化代码,提升代码整洁度?

React组件props使用方案

1 调整子组件逻辑,从props取值

你当前的TodoEnCours子组件直接依赖父组件的todoList状态和switchEnCours方法,耦合度较高,修改组件定义,改为从props参数中读取需要的内容:

function TodoEnCours(props) {
  // 也可以直接解构props,写法更简洁:
  // const { todoList, switchEnCours } = props
  const todoList = props.todoList
  const switchEnCours = props.switchEnCours

  return todoList.map((insertTask, index) => {
    if (insertTask.etat === "en cours") {
      return (
        // 补充列表渲染必填的key属性,避免控制台警告,生产环境建议用任务唯一id替代index
        <div key={index}>
          <p>{insertTask.task}</p>
          <button onClick={() => switchEnCours(insertTask)}>
            {insertTask.etat}
          </button>
        </div>
      );
    } else {
      return <div key={index}></div>;
    }
  });
}

2 父组件调用时传递props

在父组件渲染TodoEnCours的位置,把对应的数据和方法作为属性传入即可:

<div>
  <input onChange={handleInput}></input>
  <button onClick={AddTask}>Valider</button>
  <div className="DivColonne">
    <div className="Colonne">
      <h1>Tâche à faire</h1>
      {/* 按子组件需要的属性名传递对应值 */}
      <TodoEnCours todoList={todoList} switchEnCours={switchEnCours} />
    </div>
  </div>
</div>

props运行逻辑说明

  • props是React中父组件向子组件单向传递数据的通道,子组件只能读取props的值,不能直接修改props内容,所有数据变更逻辑都需要在持有对应状态的父组件中执行
  • 当父组件传递给子组件的props值发生变化时,子组件会自动重新渲染,同步拿到最新的数据
  • props支持传递任意JS类型的数据,包括普通变量、对象、函数、JSX元素等

内容的提问来源于stack exchange,提问作者Xwingoga06

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 20:18:01