2022-07-01 16:47:25 +08:00
|
|
|
---
|
|
|
|
title: 应用入口
|
|
|
|
order: 4
|
|
|
|
---
|
|
|
|
|
2022-11-11 11:02:51 +08:00
|
|
|
ice.js 通过应用配置的方式渲染整个应用,开发者可以根据提供的配置定制应用。
|
2022-07-01 16:47:25 +08:00
|
|
|
|
|
|
|
## 应用配置文件
|
|
|
|
|
|
|
|
框架以 `src/app.ts` 作为应用配置文件:
|
|
|
|
|
2022-09-26 16:05:06 +08:00
|
|
|
```ts
|
2022-07-01 16:47:25 +08:00
|
|
|
import { defineAppConfig } from 'ice';
|
|
|
|
|
2022-11-11 11:02:51 +08:00
|
|
|
export default defineAppConfig(() => ({
|
2022-07-01 16:47:25 +08:00
|
|
|
app: {
|
|
|
|
strict: true,
|
|
|
|
},
|
2022-11-11 11:02:51 +08:00
|
|
|
}));
|
2022-07-01 16:47:25 +08:00
|
|
|
```
|
|
|
|
|
|
|
|
> 推荐通过 `defineAppConfig()` 的方式导出应用配置,以获得良好的类型提示。
|
|
|
|
|
|
|
|
## 配置项
|
|
|
|
|
|
|
|
应用入口的配置项,支持应用常用的相关配置。
|
|
|
|
|
|
|
|
### app
|
|
|
|
|
|
|
|
#### `rootId`
|
2022-07-05 20:44:33 +08:00
|
|
|
|
2022-07-01 16:47:25 +08:00
|
|
|
根节点 id
|
|
|
|
|
|
|
|
- 类型:`string`
|
2022-09-26 16:05:06 +08:00
|
|
|
- 默认值:`ice-container`
|
2022-07-01 16:47:25 +08:00
|
|
|
|
2022-11-23 20:10:17 +08:00
|
|
|
:::tip
|
|
|
|
小程序端不支持修改 rootId。
|
|
|
|
:::
|
|
|
|
|
2022-07-01 16:47:25 +08:00
|
|
|
#### `strict`
|
2022-07-05 20:44:33 +08:00
|
|
|
|
2022-07-01 16:47:25 +08:00
|
|
|
是否开启 React 的严格模式 (React.StrictMode)
|
|
|
|
|
2022-09-26 16:05:06 +08:00
|
|
|
- 类型:`boolean`
|
|
|
|
- 默认值:`false`
|
2022-07-01 16:47:25 +08:00
|
|
|
|
|
|
|
#### `errorBoundary`
|
2022-07-05 20:44:33 +08:00
|
|
|
|
2022-07-01 16:47:25 +08:00
|
|
|
是否启用内置的错误边界捕获能力
|
2022-07-05 20:44:33 +08:00
|
|
|
|
2022-09-26 16:05:06 +08:00
|
|
|
- 类型:`boolean`
|
|
|
|
- 默认值:`false`
|
2022-07-01 16:47:25 +08:00
|
|
|
|
|
|
|
### router
|
|
|
|
|
2022-11-23 20:10:17 +08:00
|
|
|
:::tip
|
|
|
|
小程序端不支持 `router` 配置。关于小程序的 `router` 配置参考[小程序开发-路由](../miniapp/router)
|
2022-11-15 15:03:30 +08:00
|
|
|
:::
|
|
|
|
|
2022-07-01 16:47:25 +08:00
|
|
|
#### `type`
|
2022-07-05 20:44:33 +08:00
|
|
|
|
2022-07-01 16:47:25 +08:00
|
|
|
路由类型
|
|
|
|
|
2022-09-26 16:05:06 +08:00
|
|
|
- 类型:`'hash' | 'browser' | 'memory'`
|
|
|
|
- 默认值:`browser`
|
|
|
|
|
|
|
|
:::tip
|
|
|
|
|
|
|
|
当设置路由类型为 `memory` 时,需要对应设置 [`initialEntries`](#initialentries)。
|
|
|
|
|
|
|
|
:::
|
|
|
|
|
|
|
|
#### `initialEntries`
|
|
|
|
|
|
|
|
路由类型设置为 [`MemoryRouter`](https://reactrouter.com/en/main/router-components/memory-router#memoryrouter) 时,需要渲染的路由。
|
|
|
|
|
|
|
|
- 类型:`InitialEntry[]`
|
|
|
|
- 默认值:`['/']`
|
|
|
|
|
|
|
|
```ts
|
|
|
|
import { defineAppConfig } from 'ice';
|
|
|
|
|
2022-11-11 11:02:51 +08:00
|
|
|
export default defineAppConfig(() => ({
|
2022-09-26 16:05:06 +08:00
|
|
|
router: {
|
|
|
|
type: 'memory',
|
|
|
|
// 渲染 home 页面
|
2022-11-23 20:10:17 +08:00
|
|
|
initialEntries: ['/home'],
|
|
|
|
},
|
2022-11-11 11:02:51 +08:00
|
|
|
}));
|
2022-09-26 16:05:06 +08:00
|
|
|
```
|
2022-07-01 16:47:25 +08:00
|
|
|
|
|
|
|
#### `basename`
|
2022-07-05 20:44:33 +08:00
|
|
|
|
2022-07-01 16:47:25 +08:00
|
|
|
路由 basename
|
2022-07-05 20:44:33 +08:00
|
|
|
|
2022-09-26 16:05:06 +08:00
|
|
|
- 类型:`string`
|
|
|
|
- 默认值:`/`
|
2022-07-01 16:47:25 +08:00
|
|
|
|
|
|
|
## 运行时拓展
|
|
|
|
|
|
|
|
应用入口除了支持定义应用配置之外,同时也承担运行时扩展的能力,比如权限配置:
|
|
|
|
|
|
|
|
```js
|
|
|
|
import { defineAppConfig } from 'ice';
|
2023-02-28 15:08:10 +08:00
|
|
|
import { defineAuthConfig } from '@ice/plugin-auth/types';
|
2022-07-01 16:47:25 +08:00
|
|
|
|
|
|
|
// 导出 auth 相关的能力,该能力由 @ice/plugin-auth 插件提供
|
2022-11-11 11:02:51 +08:00
|
|
|
export const authConfig = defineAuthConfig(() => {
|
2022-07-01 16:47:25 +08:00
|
|
|
return {
|
|
|
|
initialAuth: {
|
|
|
|
admin: true,
|
|
|
|
},
|
|
|
|
};
|
|
|
|
});
|
|
|
|
|
2022-11-11 11:02:51 +08:00
|
|
|
export default defineAppConfig(() => ({
|
2022-07-01 16:47:25 +08:00
|
|
|
app: {
|
|
|
|
strict: true,
|
|
|
|
},
|
2022-11-11 11:02:51 +08:00
|
|
|
}));
|
2022-07-01 16:47:25 +08:00
|
|
|
```
|