You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Single Spa的React微前端应用中定义路由?

React微前端(single-spa)内部路由配置方案

你不需要在singleSpaReact方法内直接定义路由,路由逻辑完全可以放到你指定的Root根组件中实现,和普通React项目的路由配置方式一致,具体步骤如下:

  1. 安装路由依赖
    如果还没安装react-router-dom,执行以下命令:

    npm install react-router-dom
    # 或 yarn add react-router-dom
    
  2. 在Root组件中配置路由
    修改你的Root组件,引入React Router并配置页面路由,示例代码:

    import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom';
    // 导入你的页面组件
    import Home from './pages/Home';
    import About from './pages/About';
    import NotFound from './pages/NotFound';
    
    const Root = () => {
      return (
        <Router>
          {/* 可选:添加导航链接 */}
          <nav style={{ padding: '1rem' }}>
            <Link to="/" style={{ marginRight: '1rem' }}>首页</Link>
            <Link to="/about">关于</Link>
          </nav>
    
          {/* 路由规则配置 */}
          <Routes>
            <Route path="/" element={<Home />} />
            <Route path="/about" element={<About />} />
            {/* 404页面 */}
            <Route path="*" element={<NotFound />} />
          </Routes>
        </Router>
      );
    };
    
    export default Root;
    
  3. 适配主应用路由前缀(可选)
    如果你的微应用挂载在主应用的某个路由前缀下(比如主应用的/react-microapp路径),需要给Router添加basename属性,确保子应用路由路径正确:

    <Router basename="/react-microapp">
      {/* 路由内容 */}
    </Router>
    
  4. 关于singleSpaReact中的Router参数
    你当前代码里传入的Router参数是可选的,它主要用于single-spa在微应用卸载时自动清理路由相关的副作用,直接传入react-router-dom的BrowserRouter即可,不影响你在Root组件内的路由配置。

内容的提问来源于stack exchange,提问作者I'm nidhin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 23:25:59