Skip to content

Commit 32647e2

Browse files
authored
docs: migrate doc to rspress (#688)
1 parent 1fd8112 commit 32647e2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+30877
-1120
lines changed

.gitignore

+1-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ es/
99
.rts2_cache/
1010
.yarn/
1111
temp/
12-
/docs
12+
/
1313
# .npmrc
1414
**/.angular
1515
.wireit
@@ -39,8 +39,6 @@ lerna-debug.log
3939

4040

4141
# use pnpm ignore lock files
42-
package-lock.json
4342
yarn.lock
44-
**/package-lock.json
4543
**/yarn.lock
4644
.wireit

pnpm-lock.yaml

+5,035-1,110
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pnpm-workspace.yaml

-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,3 @@
22
packages:
33
- 'packages/**'
44
- 'dev/**'
5-
- 'website'

website-new/.gitignore

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
pnpm-debug.log*
8+
lerna-debug.log*
9+
10+
node_modules
11+
dist
12+
dist-ssr
13+
*.local
14+
15+
# Editor directories and files
16+
.vscode/*
17+
!.vscode/extensions.json
18+
.idea
19+
.DS_Store
20+
*.suo
21+
*.ntvs*
22+
*.njsproj
23+
*.sln
24+
*.sw?
25+
doc_build

website-new/docs/_meta.json

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
[
2+
{
3+
"text": "指南",
4+
"link": "/guide/quick-start/",
5+
"activeMatch": "/guide/"
6+
},
7+
{
8+
"text": "API",
9+
"link": "/api/index",
10+
"activeMatch": "/api/"
11+
},
12+
{
13+
"text": "博客",
14+
"link": "/blog/architecture",
15+
"activeMatch": "/blog/"
16+
},
17+
{
18+
"text": "常见问题",
19+
"link": "/issues/index",
20+
"activeMatch": "/issues/"
21+
}
22+
]

website-new/docs/api/__meta__.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: API
3+
collapsed: false
4+
order: 4
5+
---

website-new/docs/api/_meta.json

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
["index", "run", "registerApp", "loadApp", "loader", "preloadApp", "channel", "router", "setOptioins", "setExternal", "setGlobal", "clearEscapeEffect"]

website-new/docs/api/channel.mdx

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Garfish.channel
2+
3+
import Highlight from '@components/Highlight';
4+
5+
用于应用间的通信,`Garfish.channel` 为 Garfish 的实例属性,该属性是 [EventEmitter2](https://github.com/EventEmitter2/EventEmitter2) 的实例。
6+
7+
### Type
8+
9+
```ts
10+
channel: EventEmitter2;
11+
```
12+
13+
### 默认值
14+
15+
-
16+
17+
### 示例
18+
19+
```js
20+
// 子应用监听登录事件
21+
const App = () => {
22+
const handleLogin = (userInfo) => {
23+
console.log(`${userInfo.name} has login`);
24+
};
25+
26+
useEffect(() => {
27+
window?.Garfish.channel.on('login', handleLogin);
28+
return () => {
29+
window?.Garfish.channel.removeListener('login', handleLogin);
30+
};
31+
});
32+
};
33+
34+
// 主应用触发监听事件
35+
api.getLoginInfo().then((res) => {
36+
if (res.code === 0) {
37+
window.Garfish.channel.emit('login', res.data);
38+
}
39+
});
40+
```
+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Garfish.clearEscapeEffect
2+
3+
用来清除逃逸沙箱的变量。
4+
5+
> 在微前端应用下,子应用将默认开启沙箱模式。在沙箱模式下,若发现有一些特殊的行为会逃逸沙箱系统,可以使用此方法来清除逃逸的变量;
6+
7+
## Type
8+
```ts
9+
clearEscapeEffect: (key: string, value?: any) => void;
10+
```
11+
12+
## 示例
13+
14+
```js
15+
Garfish.clearEscapeEffect('webpackJsonp');
16+
```

website-new/docs/api/getGlobal.mdx

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Garfish.getGlobalObject
2+
3+
4+
import Highlight from '@components/Highlight';
5+
6+
用于子应用获取真实 window 的值。
7+
8+
> 在微前端应用下,子应用将默认开启沙箱模式。在沙箱模式下,子应用中全局变量为被 proxy 的 'fakeWindow',而全局变量(真实 window)默认会被隔离。若子应用需求获取真实 window 的值,可以通过此方法获取。
9+
10+
11+
12+
:::tip
13+
1. 一般情况下我们不建议直接通过此 API 获取真实 window,这样建议的原因是:
14+
- 使用此 API 后子应用产生了一个无法独立运行的逻辑,导致子应用失去独立运行的能力;
15+
- 由于环境变量的修改并不是单向数据流,造成主应用无法感知哪些子应用会去修改 window 上的哪些变量,可能造成数据管理的混乱;
16+
17+
2. 若需要获取真实 window 上的环境变量,可通过 [`protectVariable`](/api/run#protectvariable) 属性,将需要共享的属性放入列表中即可通过子应用的全局变量获取,这样主应用能感知到哪些值是会被修改的,哪些值是不会被修改的,能在一定程度上控制 `window` 变量的修改;
18+
19+
:::
20+
21+
## Type
22+
```ts
23+
getGlobalObject: () => Window & typeof globalThis;
24+
```
25+
## 示例
26+
27+
```js
28+
import Garfish from 'garfish';
29+
30+
const nativeWindow = Garfish.getGlobalObject();
31+
```

website-new/docs/api/index.md

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# 概览
2+
3+
```ts
4+
import Garfish from "garfish";
5+
```
6+
在主应用中,我们通过 `import Garfish from "garfish";` 来引入 Garfish,并调用相关 Garfish api 去注册子应用或运行微前端应用。
7+
8+
其中,Garfish 是 `garfish` 包默认导出的实例,实例上包含微前端相关API,用户可以通过相应 API 完成对整个微前端应用的管理。
9+
10+
11+
:::tip
12+
这里需要特殊说明的是,子应用不需要额外引入 Garfish 实例,子应用可通过 `window.Garfish` 获取全局 Garfish 实例信息,参考 [Garfish 环境变量](../guide/quickStart/env.md)
13+
14+
15+
:::
16+
17+
18+
## Garfish 实例方法
19+
- [Garfish.run](/api/run) (用于初始化应用参数、启动路由监听,当路由发生变化时自动激活应用或销毁应用)
20+
- [Garfish.registerApp](/api/registerapp)(用于动态注册应用信息)
21+
- [Garfish.loadApp](/api/loadapp)(可以手动控制子应用加载和销毁)
22+
- [Garfish.router](/api/router)(提供路由跳转和路由守卫能力)
23+
- [Garfish.channel](/api/channel)(提供应用间通信的能力)
24+
- [Garfish.setExternal](/api/setexternal)(支持应用间的依赖共享)
25+
- [Garfish.getGlobalObject](/api/getglobalobject)(用于获取真实 Window)
26+
- [Garfish.setGlobalObject](/api/getglobalobject)(用于设置真实 Window 的值)
27+
- [Garfish.clearEscapeEffect](/api/getglobalobject)(用于清除逃逸的副作用)

0 commit comments

Comments
 (0)