v6部署配置:生产环境路由优化实战
React Router v6的升级带来了不少变化,特别是在生产环境部署时需要特别注意配置优化。最近在项目中进行v6升级时,遇到了几个典型的配置问题。
路由配置重构
首先,v6取消了<Switch>组件,改用<Routes>。但在生产环境中,我们需要确保所有路由都正确匹配。建议使用以下配置:
import { BrowserRouter, Routes, Route } from 'react-router-dom';
function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
<Route path="*" element={<NotFound />} />
</Routes>
</BrowserRouter>
);
}
生产环境路径问题
在部署到生产环境时,发现路由无法正常匹配。这是因为v6默认使用basename参数。需要在配置中明确设置:
const router = createBrowserRouter([
{
path: "/",
element: <App />,
children: [
{ path: "home", element: <Home /> },
{ path: "about", element: <About /> }
]
}
], {
basename: process.env.NODE_ENV === 'production' ? '/myapp' : '/'
});
预渲染优化
为了提升SEO表现,我们采用了预渲染策略。在构建脚本中添加了:
"build": "react-scripts build && npm run prerender"
通过这些配置调整,在生产环境部署后,路由跳转流畅度和SEO表现都有明显改善。

讨论