当前位置:首页 > React

react子如何传父

2026-01-24 10:57:42React

在React中,子组件向父组件传递数据通常通过回调函数实现。以下是几种常见方法:

通过props传递回调函数

父组件将一个函数作为props传递给子组件,子组件调用该函数并传递数据。

父组件示例:

function Parent() {
  const handleData = (data) => {
    console.log('Received from child:', data);
  };

  return <Child onSendData={handleData} />;
}

子组件示例:

function Child({ onSendData }) {
  const sendData = () => {
    onSendData('Hello from child');
  };

  return <button onClick={sendData}>Send Data</button>;
}

使用Context API

对于深层嵌套组件,可通过Context共享状态和更新函数。

react子如何传父

创建Context:

const DataContext = React.createContext();

function Parent() {
  const [data, setData] = useState(null);

  return (
    <DataContext.Provider value={{ data, setData }}>
      <Child />
    </DataContext.Provider>
  );
}

子组件使用:

function Child() {
  const { setData } = useContext(DataContext);

  const updateData = () => {
    setData('Updated from child');
  };

  return <button onClick={updateData}>Update Data</button>;
}

使用状态管理库

在Redux或MobX等状态管理方案中,子组件可直接dispatch action或修改store。

react子如何传父

Redux示例:

function Child() {
  const dispatch = useDispatch();

  const sendData = () => {
    dispatch({ type: 'UPDATE_DATA', payload: 'Redux data' });
  };

  return <button onClick={sendData}>Dispatch</button>;
}

自定义事件(较少使用)

通过EventEmitter等模式实现自定义事件机制。

事件总线示例:

const events = new EventEmitter();

function Parent() {
  useEffect(() => {
    events.on('childEvent', (data) => {
      console.log(data);
    });
    return () => events.off('childEvent');
  }, []);
}

function Child() {
  const emitEvent = () => {
    events.emit('childEvent', 'Event data');
  };
}

每种方法适用于不同场景:简单组件推荐props回调,复杂应用可考虑Context或状态管理库。选择时需权衡组件耦合度和项目复杂度。

标签: react
分享给朋友:

相关文章

react 如何引入jquery

react 如何引入jquery

引入 jQuery 到 React 项目 在 React 项目中引入 jQuery 可以通过多种方式实现,但需要注意 React 和 jQuery 操作 DOM 的方式可能冲突,因此建议仅在必要时使用…

react如何开发组件

react如何开发组件

React 组件开发基础 React 组件分为函数组件和类组件两种形式。函数组件是现代 React 开发的主流方式,结合 Hooks 可以实现完整功能。 函数组件示例: function Gree…

如何react页面

如何react页面

创建 React 页面 使用 create-react-app 快速初始化项目: npx create-react-app my-app cd my-app npm start 基础页面结构 在 s…

react性能如何

react性能如何

React 性能特点 React 通过虚拟 DOM(Virtual DOM)和高效的 diff 算法优化性能。虚拟 DOM 减少了直接操作真实 DOM 的开销,仅在必要时更新变化的部分。React 的…

react如何衰减

react如何衰减

React 中的动画衰减效果实现 在 React 中实现衰减效果(如滚动衰减、拖动释放后的惯性滑动)通常需要结合物理动画原理或第三方动画库。以下是几种常见方法: 使用 CSS 动画和 @keyfra…

react如何验证

react如何验证

表单验证方法 在React中验证表单数据通常使用以下几种方式: 内置HTML5验证 利用HTML5原生表单验证属性如required、pattern等,结合form.noValidate属性禁用浏览…