Skip to content

Commit

Permalink
docs: ✏️ fix broken links (#447)
Browse files Browse the repository at this point in the history
  • Loading branch information
maoxiaoke authored Nov 5, 2021
1 parent 6485c8e commit 9e31292
Show file tree
Hide file tree
Showing 9 changed files with 40 additions and 26 deletions.
2 changes: 1 addition & 1 deletion website/blog/00-icestark-2-4-0.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ icestark 于前两周上线独立[官网](https://micro-frontends.ice.work/)。

![](https://img.alicdn.com/imgextra/i1/O1CN01dp76nB2A5fPvnBB6O_!!6000000008152-0-tps-956-186.jpg)

3. 以及更明显的 [FAQ 入口](http://localhost:3000/icestark-site/docs/faq)
3. 以及更明显的 [FAQ 入口](/icestark-site/docs/faq)

### 提供 [ice](https://ice.work/) 用户消费框架应用传递的 props

Expand Down
2 changes: 1 addition & 1 deletion website/blog/01-icestark-2-5-0.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ createMicroApp({

### 优化 icestark 本地开发以及沙箱的调试体验

当我们本地开发时候,source map 对定位源码非常有效。但是使用 [fetch](http://localhost:3000/docs/api/ice-stark/#loadscriptmode) 来加载 js 资源时候,由于当前 origin 是主应用的 origin,导致 source map 文件加载失败。如图:
当我们本地开发时候,source map 对定位源码非常有效。但是使用 [fetch](/docs/api/ice-stark/#loadscriptmode) 来加载 js 资源时候,由于当前 origin 是主应用的 origin,导致 source map 文件加载失败。如图:

![](https://img.alicdn.com/imgextra/i3/O1CN01Fzwbb31LpQb0uqoHy_!!6000000001348-0-tps-2996-396.jpg)

Expand Down
10 changes: 5 additions & 5 deletions website/blog/02-icestark-2-6-0.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ hide_table_of_contents: false

## Announcing icestark 2.6.0

非常高兴地告诉大家,在 [2.6.0](https://github.com/ice-lab/icestark/pull/369) 这个版本中,我们支持了 ES modules 模块类型的微应用。也就是说,如果您使用 [Vite](https://vitejs.dev/) 或者 [icejs Vite 模式](https://ice.work/docs/guide/basic/Vite/) 开发的应用,可以使用 icestark 来构建您的微前端架构。
非常高兴地告诉大家,在 [2.6.0](https://github.com/ice-lab/icestark/pull/369) 这个版本中,我们支持了 ES modules 模块类型的微应用。也就是说,如果您使用 [Vite](https://vitejs.dev/) 或者 [icejs Vite 模式](https://ice.work/docs/guide/basic/vite/) 开发的应用,可以使用 icestark 来构建您的微前端架构。

本次更新主要包括:
- [支持 ES modules 类型微应用](#支持-ES-modules-类型微应用)
Expand All @@ -29,7 +29,7 @@ hide_table_of_contents: false
+ **项目大小不再成为服务器启动速度的限制因素**
+ **HMR 始终保持快速更新**

随着 [icejs](https://ice.work/) 支持 [Vite](https://ice.work/docs/guide/basic/Vite/) 模式,icestark 也为大家带来了 ES modules 类型微应用的支持。
随着 [icejs](https://ice.work/) 支持 [Vite](https://ice.work/docs/guide/basic/vite/) 模式,icestark 也为大家带来了 ES modules 类型微应用的支持。

框架应用接入 ES modules 微应用的方式非常简单,配置 `loadScriptMode: import` 来支持 ES modules 类型微应用的加载。

Expand All @@ -50,9 +50,9 @@ hide_table_of_contents: false
</AppRouter>
```

对于 Vite 应用的 icestark 适配,可参考 [其他框架接入微应用 - Vite 应用](http://localhost:3000/docs/guide/use-child/others#Vite-%E5%BA%94%E7%94%A8) 进行配置。后期,我们将提供 Vite plugin 能力,使 Vite 应用的接入非常简单。
对于 Vite 应用的 icestark 适配,可参考 [其他框架接入微应用 - Vite 应用](/docs/guide/use-child/others#Vite-%E5%BA%94%E7%94%A8) 进行配置。后期,我们将提供 Vite plugin 能力,使 Vite 应用的接入非常简单。

对于 ice.js 子应用,只需将 [`build-plugin-icestark`](https://ice.work/docs/guide/advanced/icestark) 升级到最新版本,并开启 [icejs Vite 模式](https://ice.work/docs/guide/basic/Vite),即可完成改造工作。
对于 ice.js 子应用,只需将 [`build-plugin-icestark`](https://ice.work/docs/guide/advanced/icestark) 升级到最新版本,并开启 [icejs Vite 模式](https://ice.work/docs/guide/basic/vite),即可完成改造工作。


### ES modules 微应用的常见问题解答
Expand Down Expand Up @@ -108,7 +108,7 @@ export function unmount () {

### 修复对 location.hash 赋值 onRouteChange 触发两次的错误

由于对 `window.location.hash` 进行赋值,会触发 popstate 和 hashchange 两个事件,导致钩子函数 [onRouteChange](http://localhost:3000/docs/api/ice-stark#startconfiguration) 触发两次。版本 2.6.0 修复了这个问题。
由于对 `window.location.hash` 进行赋值,会触发 popstate 和 hashchange 两个事件,导致钩子函数 [onRouteChange](/docs/api/ice-stark#startconfiguration) 触发两次。版本 2.6.0 修复了这个问题。


### 对项目配置的改造
Expand Down
7 changes: 6 additions & 1 deletion website/docs/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ const Routes = () => {

## 切换微应用,主应用样式丢失

通常情况是主应用开启了 webpack [Dynamic Imports](https://webpack.js.org/guides/code-splitting/#dynamic-imports) 能力,可以通过 [shouldAssetsRemove](http://localhost:3000/docs/api/ice-stark#shouldassetsremove) 防止错误地移除主应用的样式资源。
通常情况是主应用开启了 webpack [Dynamic Imports](https://webpack.js.org/guides/code-splitting/#dynamic-imports) 能力,可以通过 [shouldAssetsRemove](/docs/api/ice-stark#shouldassetsremove) 防止错误地移除主应用的样式资源。

```js
// src/App.jsx
Expand All @@ -362,3 +362,8 @@ const App = () => {
}
}
```

## 主应用路由之间跳转导致重复渲染

如果主应用需要包含路由页面,在 [React 主应用接入](/docs/guide/use-layout/react#主应用中如何包含路由页面) 我们推荐将主应用路由作为一个 `fallback` 微应用来使用。但由于在主应用路由切换时,上层组件状态改变会导致 `fallback` 应用重复渲染,因此推荐使用 [React.memo](https://reactjs.org/docs/react-api.html#reactmemo) 防止 React 组件重复渲染。具体示例可参考 [主应用中如何包含路由页面](/docs/guide/use-layout/react#主应用中如何包含路由页面)

4 changes: 2 additions & 2 deletions website/docs/guide/advanced/communication.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,13 +84,13 @@ event.emit('freshMessage');

## props <Badge text="2.0.0+" />

icestark 还支持通过 [props](http://localhost:3000/docs/api/ice-stark#props) 将主应用数据传递给微应用。
icestark 还支持通过 [props](/docs/api/ice-stark#props) 将主应用数据传递给微应用。

### 示例

主应用向微应用统一注入用户信息。

在主应用中通过 [props](http://localhost:3000/docs/api/ice-stark#props) 配置用户信息。
在主应用中通过 [props](/docs/api/ice-stark#props) 配置用户信息。

```js
// src/App.jsx
Expand Down
8 changes: 6 additions & 2 deletions website/docs/guide/advanced/performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -203,9 +203,9 @@ module.exports = {
}
```
2. 如果主应用同样配置了 Dynamic Imports,配置 [shouldAssetsRemove](http://localhost:3000/docs/api/ice-stark#shouldassetsremove)
2. 如果主应用同样配置了 Dynamic Imports,配置 [shouldAssetsRemove](/docs/api/ice-stark#shouldassetsremove)
icestark 内部会在微应用卸载时,同时卸载微应用的样式资源,防止样式污染。因此,如若主应用配置了 Dynamic Imports,可以通过 [shouldAssetsRemove](http://localhost:3000/docs/api/ice-stark#shouldassetsremove) 防止错误地移除主应用的样式资源。
icestark 内部会在微应用卸载时,同时卸载微应用的样式资源,防止样式污染。因此,如若主应用配置了 Dynamic Imports,可以通过 [shouldAssetsRemove](/docs/api/ice-stark#shouldassetsremove) 防止错误地移除主应用的样式资源。
```js
// src/App.jsx
Expand All @@ -228,6 +228,10 @@ const App = () => {
}
```
:::tip
我们强烈建议使用 `shouldAssetsRemove` 只针对主应用的资源进行相关的配置(微应用的静态资源可交由 icestark 进行加载与卸载)。
:::
## 依赖外置
通常主应用和微应用会共有一些基础依赖,比如 `React``ReactDOM`、组件库等。可以适当考虑微应用外置掉这些基础依赖,由主应用统一加载。比如,通过 [webpack Externals](https://webpack.js.org/configuration/externals) 外置微应用的基础依赖:
Expand Down
2 changes: 1 addition & 1 deletion website/docs/guide/micro-module.md
Original file line number Diff line number Diff line change
Expand Up @@ -494,4 +494,4 @@ const App = () => {

## API

请移步 [API -> @ice/stark-module](http://localhost:3000/docs/api/stark-module)
请移步 [API -> @ice/stark-module](/docs/api/stark-module)
2 changes: 1 addition & 1 deletion website/docs/guide/use-child/others.md
Original file line number Diff line number Diff line change
Expand Up @@ -550,7 +550,7 @@ export default defineConfig({

### 主应用加载 Vite 应用

主应用需要通过 `loadScriptMode: import` 来加载 ES modules 类型微应用(Vite 应用)。同时由于 Vite 应用在 dev 下注入 HMR 相关的代码,因此建议通过 [entry 方式](http://localhost:3000/docs/guide/concept/child#2-entry) 接入,保证开发和生产的配置一致性。
主应用需要通过 `loadScriptMode: import` 来加载 ES modules 类型微应用(Vite 应用)。同时由于 Vite 应用在 dev 下注入 HMR 相关的代码,因此建议通过 [entry 方式](/docs/guide/concept/child#2-entry) 接入,保证开发和生产的配置一致性。

```diff
export default class App extends React.Component {
Expand Down
29 changes: 17 additions & 12 deletions website/docs/guide/use-layout/react.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,21 @@ import BasicLayout from '@/layouts/BasicLayout';
+import Home from './pages/Home';
+import Login from './pages/Login';

export default class App extends React.Component {
+const FrameworkRouter = () => {
+ return (
+ <Router>
+ <Switch>
+ <Route path="/login" component={Login} />
+ <Route path="/" exact component={Home} />
+ <Route path="*" exact component={NotFound} />
+ </Switch>
+ </Router>
+ )
+};

+const FrameworkRouterMemo = React.memo(FrameworkRoutes);

export default App = () => {
render() {
return (
<BasicLayout>
Expand All @@ -197,17 +211,7 @@ export default class App extends React.Component {
<AppRoute activePath="/user" />
+ <AppRoute
+ activePath="*"
+ render={() => {
+ return (
+ <Router>
+ <Switch>
+ <Route path="/login" component={Login} />
+ <Route path="/" exact component={Home} />
+ <Route path="*" exact component={NotFound} />
+ </Switch>
+ </Router>
+ );
+ }}
+ render={() => <FrameworkRouterMemo />}
+ />
</AppRouter>
</BasicLayout>
Expand All @@ -216,6 +220,7 @@ export default class App extends React.Component {
}
```


### 通过数据驱动注册微应用列表

在很多场景下,我们的微应用可能通过一些配置平台注册,这时候可以将所有微应用的信息通过全局变量输出到 html 中,然后前端通过该数据注册微应用:
Expand Down

0 comments on commit 9e31292

Please sign in to comment.