当前位置:首页 > 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>;
}

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

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

// 父组件
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)

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

// 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共享逻辑

封装可复用的状态逻辑:

react是如何传递参数的

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
分享给朋友:

相关文章

vue实现绑定输入参数

vue实现绑定输入参数

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

如何生成react代码

如何生成react代码

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

如何清洁react

如何清洁react

清洁 React 项目的方法 删除未使用的依赖项 运行 npm ls 或 yarn list 检查已安装的依赖项,使用 npm uninstall <package> 或 yarn rem…

vscode如何配置react

vscode如何配置react

配置 VSCode 进行 React 开发 安装必要插件 ES7+ React/Redux/React-Native snippets:提供 React 代码片段快速生成功能。 Prettier -…

react如何滚动scroll

react如何滚动scroll

React 实现滚动的方法 使用 useRef 和 scrollTo 方法 通过 useRef 获取 DOM 元素的引用,调用 scrollTo 方法实现滚动。 import React, { us…

小白如何搭建react

小白如何搭建react

安装 Node.js 和 npm 确保系统已安装 Node.js(包含 npm)。可通过官网下载安装包(https://nodejs.org/),选择 LTS 版本。安装完成后,终端运行以下命令验证版…