当前位置:首页 > React

react如何传递参数

2026-01-15 09:44:08React

传递 props 给子组件

在父组件中通过属性名直接传递数据,子组件通过 props 对象接收。例如父组件传递 nameage

<ChildComponent name="John" age={25} />

子组件通过解构或直接访问 props 使用:

function ChildComponent({ name, age }) {
  return <div>{name} is {age} years old</div>;
}

使用 context 跨层级传递

通过 React.createContext 创建上下文,Provider 提供数据,ConsumeruseContext 消费数据。创建上下文:

const UserContext = React.createContext();

在父组件用 Provider 包裹并传递值:

<UserContext.Provider value={{ user: "Alice" }}>
  <ChildComponent />
</UserContext.Provider>

子组件通过 useContext 获取:

const { user } = useContext(UserContext);

通过路由传递参数

使用 react-router-dom 时,可通过 URL 参数或状态传递。动态路由匹配参数:

<Route path="/user/:id" component={UserPage} />

在目标组件中通过 useParams 获取:

const { id } = useParams();

通过 Linkstate 传递状态:

<Link to="/profile" state={{ fromHome: true }}>Profile</Link>

目标组件用 useLocation 接收:

const { state } = useLocation();

回调函数传递数据

父组件定义回调,子组件调用并传参。父组件定义并传递回调:

function Parent() {
  const handleData = (data) => console.log(data);
  return <Child onData={handleData} />;
}

子组件触发回调:

function Child({ onData }) {
  return <button onClick={() => onData("Hello")}>Send</button>;
}

使用状态管理库

如 Redux 或 MobX 全局管理状态。Redux 中通过 useSelector 获取状态,useDispatch 触发更新:

react如何传递参数

const count = useSelector(state => state.counter);
const dispatch = useDispatch();
dispatch(increment());

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

相关文章

react实现vue

react实现vue

React 实现 Vue 功能 React 和 Vue 是两种不同的前端框架,但可以通过一些方法在 React 中实现 Vue 的特性。以下是几种常见 Vue 功能在 React 中的实现方式: 双…

如何降低react版本

如何降低react版本

降低 React 项目版本的步骤 检查当前 React 版本 运行以下命令查看项目中安装的 React 当前版本: npm list react 或 yarn list react 修改…

如何选购react

如何选购react

选购 React 相关产品或服务的建议 React 是一个用于构建用户界面的 JavaScript 库,广泛应用于前端开发。以下是选购 React 相关产品(如课程、书籍、工具、组件库等)的参考方法:…

react如何查

react如何查

React 查询方法 React 提供了多种查询 DOM 元素的方式,以下是几种常见的方法: 使用 ref 通过 useRef 钩子可以获取 DOM 节点的引用,适用于直接操作 DOM 的场景。…

react如何遍历

react如何遍历

遍历数组或对象的方法 在React中,遍历数组或对象通常用于渲染列表或动态生成内容。以下是几种常见的遍历方法: 使用map遍历数组map是遍历数组并返回新数组的高阶函数,适合渲染列表。…

如何关闭react

如何关闭react

关闭React应用的步骤 在开发或运行React应用时,可能需要关闭正在运行的开发服务器或停止应用。以下是几种常见情况的处理方法: 停止开发服务器 如果正在使用npm start或yarn star…