当前位置:首页 > React

react标签间如何传递值

2026-03-11 09:03:02React

父组件向子组件传递值

父组件通过 props 向子组件传递数据。在父组件中,将数据作为属性传递给子组件,子组件通过 props 接收。

// 父组件
function ParentComponent() {
  const message = "Hello from Parent";
  return <ChildComponent message={message} />;
}

// 子组件
function ChildComponent(props) {
  return <div>{props.message}</div>;
}

子组件向父组件传递值

子组件通过回调函数向父组件传递数据。父组件定义一个函数,通过 props 传递给子组件,子组件调用该函数并传递数据。

react标签间如何传递值

// 父组件
function ParentComponent() {
  const handleData = (data) => {
    console.log(data); // 输出: "Hello from Child"
  };
  return <ChildComponent onData={handleData} />;
}

// 子组件
function ChildComponent(props) {
  const sendData = () => {
    props.onData("Hello from Child");
  };
  return <button onClick={sendData}>Send Data</button>;
}

兄弟组件间传递值

兄弟组件间可以通过共同的父组件传递数据。一个子组件通过回调函数将数据传递给父组件,父组件再通过 props 传递给另一个子组件。

// 父组件
function ParentComponent() {
  const [data, setData] = useState("");

  const handleData = (newData) => {
    setData(newData);
  };

  return (
    <>
      <ChildComponentA onData={handleData} />
      <ChildComponentB data={data} />
    </>
  );
}

// 子组件A
function ChildComponentA(props) {
  const sendData = () => {
    props.onData("Data from A");
  };
  return <button onClick={sendData}>Send Data</button>;
}

// 子组件B
function ChildComponentB(props) {
  return <div>{props.data}</div>;
}

使用 Context API 跨层级传递值

Context 适用于跨多层组件传递数据,避免逐层传递 props

react标签间如何传递值

// 创建 Context
const MyContext = React.createContext();

// 父组件提供数据
function ParentComponent() {
  return (
    <MyContext.Provider value="Context Data">
      <ChildComponent />
    </MyContext.Provider>
  );
}

// 子组件消费数据
function ChildComponent() {
  const data = useContext(MyContext);
  return <div>{data}</div>;
}

使用状态管理库(如 Redux)

对于复杂应用,可以使用 Redux 或 Zustand 等状态管理库共享数据。

// 使用 Redux 示例
import { useSelector, useDispatch } from "react-redux";

function ComponentA() {
  const dispatch = useDispatch();
  const sendData = () => {
    dispatch({ type: "SET_DATA", payload: "Redux Data" });
  };
  return <button onClick={sendData}>Send Data</button>;
}

function ComponentB() {
  const data = useSelector((state) => state.data);
  return <div>{data}</div>;
}

使用自定义事件或 Pub/Sub 模式

通过事件总线或发布订阅模式实现组件间通信,适用于非父子关系的组件。

// 使用 events 库示例
import { EventEmitter } from "events";
const eventBus = new EventEmitter();

// 组件A 发布事件
function ComponentA() {
  const emitData = () => {
    eventBus.emit("dataEvent", "Event Data");
  };
  return <button onClick={emitData}>Emit Data</button>;
}

// 组件B 订阅事件
function ComponentB() {
  const [data, setData] = useState("");

  useEffect(() => {
    eventBus.on("dataEvent", (data) => {
      setData(data);
    });
    return () => eventBus.off("dataEvent");
  }, []);

  return <div>{data}</div>;
}

标签: 标签react
分享给朋友:

相关文章

react native 如何

react native 如何

React Native 开发基础 React Native 是一个用于构建跨平台移动应用的框架,允许开发者使用 JavaScript 和 React 编写代码,同时生成原生 iOS 和 Androi…

如何生成react代码

如何生成react代码

使用 Create React App 生成项目 安装 Node.js 后,通过命令行工具运行以下命令创建新项目: npx create-react-app my-app cd my-app npm…

如何手写一个react

如何手写一个react

手写一个简单的 React 创建一个基础的 React 实现需要理解其核心概念:虚拟 DOM、组件、状态管理和渲染。以下是一个简化版的 React 实现。 创建虚拟 DOM 虚拟 DOM 是真实 D…

如何优化react

如何优化react

优化 React 性能的方法 使用 React.memo 或 PureComponent 对于函数组件,使用 React.memo 进行记忆化,避免不必要的重新渲染。类组件可以使用 PureCompo…

如何创建react

如何创建react

创建React项目的步骤 使用Create React App工具快速搭建React项目。确保已安装Node.js(版本需≥14.0.0)和npm(版本需≥5.6)。 打开终端或命令行工具,运行以下…

react如何重置

react如何重置

重置 React 应用的状态 使用 useState 钩子重新初始化状态变量是最直接的方法。将状态变量重置为初始值或空值即可完成重置。 const [count, setCount] = useSt…