当前位置:首页 > React

react路由如何实现父子通信

2026-03-11 10:28:24React

路由参数传递

在父组件中通过路由参数传递数据给子组件。父组件通过<Link>history.push传递参数,子组件通过useParamsprops.match.params获取参数。

// 父组件传递参数
<Link to={`/child/${data}`}>跳转</Link>
// 或
history.push(`/child/${data}`);

// 子组件获取参数
const { data } = useParams();
// 或
const { data } = props.match.params;

状态提升

将状态提升到共同的父组件中,通过props传递给子组件。父组件定义状态和修改状态的方法,子组件通过props接收和调用。

react路由如何实现父子通信

// 父组件
const [state, setState] = useState('');
<ChildComponent state={state} setState={setState} />

// 子组件
const { state, setState } = props;

Context API

使用React的Context API实现跨组件通信。创建Context后,父组件作为Provider提供数据,子组件通过useContext消费数据。

react路由如何实现父子通信

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

// 父组件提供数据
<MyContext.Provider value={{ data, setData }}>
  <ChildComponent />
</MyContext.Provider>

// 子组件消费数据
const { data, setData } = useContext(MyContext);

自定义事件

通过自定义事件实现通信。父组件定义事件并暴露给子组件,子组件触发事件时父组件执行相应逻辑。

// 父组件
const handleEvent = (data) => {
  console.log(data);
};
<ChildComponent onEvent={handleEvent} />

// 子组件
props.onEvent(data);

路由渲染属性

利用路由的render或children属性直接传递props给子组件。在路由配置中通过render方法将父组件的props传递给子组件。

<Route
  path="/child"
  render={(props) => <ChildComponent {...props} parentProps={data} />}
/>

标签: 路由父子
分享给朋友:

相关文章

vue路由实现滑动

vue路由实现滑动

路由切换滑动动画实现 在Vue中实现路由切换时的滑动动画,可以通过Vue的过渡系统结合CSS动画或第三方库完成。以下是几种常见方法: 使用Vue过渡 + CSS动画 包裹<router-vie…

vue实现路由守卫

vue实现路由守卫

路由守卫的基本概念 路由守卫是Vue Router提供的一种机制,用于在路由跳转前后执行特定的逻辑。它可以用于权限控制、页面访问限制、数据预加载等场景。Vue Router提供了多种路由守卫,包括全局…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…

vue 路由实现机制

vue 路由实现机制

Vue 路由实现机制 Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。其核心实现机制主要包括以下几个方面: 路由模式 Vue Router 支持两种路由模式:…

vue路由实现跳转

vue路由实现跳转

vue路由实现跳转的方法 在Vue.js中,通过Vue Router可以实现页面之间的跳转。以下是几种常见的路由跳转方式: 声明式导航 使用<router-link>组件实现跳转,适合在…

vue如何实现路由

vue如何实现路由

路由基础配置 在Vue中实现路由通常使用Vue Router库。安装Vue Router后,在项目中创建路由配置文件(如router/index.js),定义路由路径与组件的映射关系: import…