React静态项目App.jsx路由配置问题:BrowserRouter迁移无效,路由组件同页
解决方案
- 先在App.jsx中导入
BrowserRouter,并将整个路由结构用它包裹,确保路由能正常工作。 - 调整路由配置:把首页的所有组件(PageHeader、About、Works、Contact、Footer)放到根路径
/的路由元素中,将/resume路由单独设置,这样两个路由的内容不会同时渲染。
修改后的App.jsx代码如下:
import { BrowserRouter, Routes, Route } from 'react-router-dom'; // 导入你的各个组件:PageHeader, About, Works, Contact, Footer, Resume export default function App() { return ( <BrowserRouter> <Routes> {/* 首页路由 - 访问根路径时渲染这些组件 */} <Route path="/" element={ <> <PageHeader /> <About /> <Works /> <Contact /> <Footer /> </> } /> {/* 简历独立页面路由 - 仅访问/resume时渲染Resume组件 */} <Route path="/resume" element={<Resume />} /> </Routes> </BrowserRouter> ) }
另外,要确保页面跳转使用react-router-dom提供的Link组件(而非原生a标签),避免页面刷新,比如在PageHeader中添加导航:
import { Link } from 'react-router-dom'; function PageHeader() { return ( <header> <Link to="/">首页</Link> <Link to="/resume">简历</Link> </header> ); }
这样切换到/resume路由时,就只会显示Resume组件,不会再渲染首页的其他内容了。
内容的提问来源于stack exchange,提问作者Maria Grassa
相关产品推荐
相关产品推荐

