当前位置:首页 > React

react是如何传递参数的

2026-01-25 11:49:28React

React 参数传递方式

在 React 中,参数传递主要通过以下几种方式实现,适用于不同场景:

父子组件通信(Props)

父组件通过属性(props)向子组件传递数据:

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

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

子父组件通信(回调函数)

通过回调函数实现子组件向父组件传递数据:

react是如何传递参数的

// 父组件
function Parent() {
  const handleData = (data) => {
    console.log("Received:", data);
  };
  return <Child onSendData={handleData} />;
}

// 子组件
function Child({ onSendData }) {
  return <button onClick={() => onSendData("Child Data")}>Send</button>;
}

Context API

跨层级组件共享数据:

const MyContext = React.createContext();

// 提供者组件
function Provider() {
  return (
    <MyContext.Provider value={{ sharedData: "Global Data" }}>
      <Consumer />
    </MyContext.Provider>
  );
}

// 消费者组件
function Consumer() {
  const context = React.useContext(MyContext);
  return <div>{context.sharedData}</div>;
}

状态管理工具(Redux/Zustand)

全局状态管理库实现任意组件间通信:

react是如何传递参数的

// Redux示例
import { useSelector, useDispatch } from 'react-redux';

function Component() {
  const data = useSelector(state => state.data);
  const dispatch = useDispatch();

  const updateData = () => {
    dispatch({ type: 'UPDATE', payload: "New Data" });
  };
}

路由参数(React Router)

通过URL传递参数:

// 路由配置
<Route path="/user/:id" component={User} />

// 组件获取参数
function User({ match }) {
  return <div>User ID: {match.params.id}</div>;
}

Refs 传递

直接访问DOM或组件实例:

function Parent() {
  const childRef = React.useRef();

  const handleClick = () => {
    childRef.current.doSomething();
  };

  return (
    <>
      <Child ref={childRef} />
      <button onClick={handleClick}>Trigger Child</button>
    </>
  );
}

// 需使用forwardRef包装子组件
const Child = React.forwardRef((props, ref) => {
  React.useImperativeHandle(ref, () => ({
    doSomething: () => console.log("Child method called")
  }));
  return <div>Child Component</div>;
});

自定义Hook共享逻辑

封装可复用的状态逻辑:

function useCustomHook(initialValue) {
  const [value, setValue] = React.useState(initialValue);
  const double = () => setValue(v => v * 2);
  return { value, double };
}

function Component() {
  const { value, double } = useCustomHook(1);
  return <button onClick={double}>{value}</button>;
}

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

相关文章

如何优化react

如何优化react

优化 React 性能的方法 使用 React.memo 进行组件记忆 React.memo 是一个高阶组件,用于缓存函数组件的渲染结果,避免不必要的重新渲染。只有当组件的 props 发生变化时,才…

vue实现绑定输入参数

vue实现绑定输入参数

Vue 实现绑定输入参数 在 Vue 中,可以通过 v-model 指令实现输入框与数据的双向绑定。以下是一个简单的示例: <template> <div> &l…

react native如何启动

react native如何启动

如何启动 React Native 项目 安装 Node.js 和 npm 确保已安装 Node.js(建议版本 16 或更高)和 npm(Node.js 自带)。可通过以下命令检查版本: nod…

如何生成react代码

如何生成react代码

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

react 如何引入jquery

react 如何引入jquery

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

react moment如何使用

react moment如何使用

安装 react-moment 通过 npm 或 yarn 安装 react-moment: npm install react-moment 或 yarn add react-moment…