微前端: single-spa 的 parcel

parcel 是一个 single-spa 的概念
更新于: 2023-03-29 07:56:45

Parcel

这个是 spa 里自己的一个概念,用于多种不同框架间共享组件的解决方案

创建 navbar

利用 spa 创建 navbar 的 parcel 组件

创建 React 的 parcel

import { BrowserRouter, NavLink } from "react-router-dom";

export default function Root() {
  return (
    <BrowserRouter>
      <nav>
        <NavLink to="/">home</NavLink>
        <NavLink to="/lagou">lagou</NavLink>
        <NavLink to="/todos">todos</NavLink>
      </nav>
    </BrowserRouter>
  );
}

在 todos 应用中使用

  • 关键代码 import Parcel from "single-spa-react/parcel";
  • 使用 <Parcel config={System.import("@jswork/navbar")} />
import React from "react";
// react router v6
import { BrowserRouter, Routes, Route, NavLink } from "react-router-dom";
import Home from "./home";
import About from "./about";
import Parcel from "single-spa-react/parcel";

export default function Root(props) {
  return (
    <section>
      <BrowserRouter basename="/todos">
        <Parcel config={System.import("@jswork/navbar")} />
        <nav>
          <NavLink to="/" end>
            Home
          </NavLink>
          <NavLink to="/about">About</NavLink>
        </nav>
        <Routes>
          <Route index path="/" element={<Home />} />
          <Route path="/about" element={<About />} />
        </Routes>
      </BrowserRouter>
    </section>
  );
}

参考