diff --git a/docs/guide/about.md b/docs/guide/about.md
index 4bebdc724f..207996e288 100644
--- a/docs/guide/about.md
+++ b/docs/guide/about.md
@@ -31,6 +31,10 @@ cover: https://gw.alicdn.com/tfs/TB1vBRYaVOWBuNjy0FiXXXFxVXa-2558-1306.jpg
毫无疑问是需要的,我们在努力降低前端开发的门槛,但一些基础的前端知识还是需要具备的,比如 JavaScript 的基础预发、前后端如何通信等。为了便于快速入门前端知识,我们整理了一份 [前端基础知识](/docs/guide/resource/front-basic.md),希望能帮助到开发者。
+#### 资深前端同学是否适合使用飞冰?
+
+在 GUI 工具基础上,飞冰还提供了 [CLI 版本](/docs/guide/start#使用%20CLI%20方式创建项目),因此如果你不需要 GUI 的能力,依然可以完全使用 CLI 的链路开发项目,同时使用到飞冰的项目最佳实践、工程工具以及状态管理方案。
+
#### 飞冰(ICE)的浏览器兼容策略是怎样的?
飞冰官方 React 物料默认使用 React 16+,其需要的最低 IE 版本为 11,如果您需要在以下的版本使用,您可能需要引入一些 polyfill 来支持 `Map`, `Set` 等特性。参考[React 官网说明](https://reactjs.org/blog/2017/09/26/react-v16.0.html#javascript-environment-requirements)。
diff --git a/docs/guide/dev/react-materials.md b/docs/guide/dev/react-materials.md
index 58bb836a1a..bed6a1d24d 100644
--- a/docs/guide/dev/react-materials.md
+++ b/docs/guide/dev/react-materials.md
@@ -9,7 +9,7 @@ order: 1
### 基础组件
-使用由阿里巴巴 [Fusion 团队](https://fusion.design) 开源的 [Next 组件](https://ice.work/component/affix),包括按钮、弹窗、下拉等组件。Next 组件足够丰富且稳定,同时在国际化、无障碍方面做了较多沉淀,另外 Next 组件最大的特性是具有非常强大灵活的主题定制能力,使其可以满足更多的业务场景,具体可参考文档 [配置主题](/docs/cli/basic/theme.md)。
+使用由阿里巴巴 [Fusion 团队](https://fusion.design) 开源的 [Next 组件](https://ice.work/component/affix),包括按钮、弹窗、下拉等组件。Next 组件足够丰富且稳定,同时在国际化、无障碍方面做了较多沉淀,另外 Next 组件最大的特性是具有非常强大灵活的主题定制能力,使其可以满足更多的业务场景,具体可参考文档 [配置主题](/docs/cli/plugin-list/fusion)。
安装组件依赖:
diff --git a/docs/guide/resource/migrate.md b/docs/guide/resource/migrate.md
index aa1a601098..47f0d12303 100644
--- a/docs/guide/resource/migrate.md
+++ b/docs/guide/resource/migrate.md
@@ -1,162 +1,75 @@
---
-title: icekit pro 模板升级指南
+title: ICE 脚手架升级指南
order: 4
---
-飞冰将前端开发领域的最佳实践集成在 icekit pro 模板中,pro 模板到目前为止发过 3 个版本,每个版本之间的 breaking change 主要在于路由配置方面,以下列出了不同版本间的差异点:
-
-## 版本差异点
-
-### icekit 1.x
-- 路由配置放在 `src/routerConfig` 中
-- 路由配置中只包含页面路由配置,不支持路由按 Layout 分组,所有路由平铺
-
-```javascript
-const routerConfig = [
- {
- path: '/dashboard/monitor',
- component: Dashboard,
- },
- {
- path: '/chart/general',
- component: Charts,
- }
-];
-```
-
-- Layout 路由在 `src/router.js` 中
-
-```javascript
-// 按照 Layout 分组路由
-const router = () => {
- return (
-
-
-
-
- );
-};
-
-```
-
-- 重定向路由与未匹配路由定义在 Layout 组件中,例如 BasicLayout 的路由为 `src/layouts/BasicLayout/MainRoutes.js`
-
-```javascript
-
- {/* 渲染权限路由表 */}
-
- {routerData.map(this.renderAuthorizedRoute)}
-
- {/* 路由重定向,嵌套路由默认重定向到当前菜单的第一个路由 */}
- {redirectData.map((item, index) => {
- return ;
- })}
-
- {/* 首页默认重定向到 /dashboard */}
-
-
- {/* 未匹配到的路由重定向到 404 */}
-
-
-```
-
-### icekit 2.x
-- 相对于 1.x 对路由配置作了收敛,将 Layout 配置及重定向、未匹配路由全部收敛到 `src/routerConfig.js` 中
-
-```javascript
-const routerConfig = [
- {
- path: '/',
- component: BasicLayout,
- children: [
- {
- path: '/dashboard',
- component: Dashboard,
- },
- {
- path: '/',
- redirect: '/dashboard',
- },
- {
- component: NotFound,
- },
- ],
- },
-];
-```
-
-- 路由渲染逻辑全部收敛到 `src/router.jsx` 中
-
-### icekit 3.x
-- 与 2.x 唯一的区别是 `routerConfig` 与 `menuConfig`, `dataSourceConfig` 进一步收敛到 `config` 目录中,目录结构如下:
-
-```markdown
-└── config/ # 配置信息
- ├── dataSource.js # 数据源配置
- ├── routes.js # 路由配置
- └── menu.js # 导航菜单配置
-```
+飞冰将前端开发的最佳实践集成在脚手架中,主要包含目录结构、路由配置、状态管理等相关内容,脚手架截止目前总共有三个版本,这三个版本之间有一些微小的 break change,如需升级请参考本文档。
+## 版本差异
+
+### 1.x
+
+初始版本,存量项目较多,[示例项目](https://unpkg.com/browse/@icedesign/hr-management-admin-scaffold@2.0.0/),主要包含以下特点:
+
+- 推荐使用 Class Component
+- 构建工具 ice-scripts 有 1.x&2.x 两个版本
+- 路由配置放在 `src/routerConfig.js` 中,路由渲染与 Layout 耦合,不支持路由按 Layout 分组,不支持路由嵌套,相关代码:
+ - 路由配置:[代码](https://unpkg.com/browse/@icedesign/hr-management-admin-scaffold@2.0.0/src/routerConfig.js)
+ - 路由入口:[代码](https://unpkg.com/browse/@icedesign/hr-management-admin-scaffold@2.0.0/src/router.jsx)
+ - 路由渲染:[代码](https://unpkg.com/browse/@icedesign/hr-management-admin-scaffold@2.0.0/src/layouts/BasicLayout/MainRoutes.jsx)
+
+### 2.x
+
+过渡版本,变更点较多,存量项目较少,[示例项目](https://unpkg.com/browse/@icedesign/hr-management-admin-scaffold@2.0.8/),主要包含以下特点:
+
+- [兼容]推荐使用 Function Component + React Hooks
+- [兼容]通过 `@ice/spec` 收敛 lint 相关配置,统一项目的 lint 命令
+- [兼容]统一将 `src/` alias 到 `@`,方便 `import` 写法
+- [兼容]推荐通过基于 React Hooks 的状态管理方案 [icestore](https://github.com/ice-lab/icestore)
+- [兼容]构建工具统一升级到 ice-scripts@2.x
+- [不兼容]路由配置放在 `src/routerConfig.js` 中,支持通过 Layout 分组,路由嵌套等能力,路由相关代码:
+ - 路由配置:[代码](https://unpkg.com/browse/@icedesign/hr-management-admin-scaffold@2.0.8/src/routerConfig.js)
+ - 路由渲染:[代码](https://unpkg.com/browse/@icedesign/hr-management-admin-scaffold@2.0.8/src/router.jsx)
+
+### 3.x
+
+最新版本,在 2.x 基础上做了配置文件的收敛,[示例项目](https://unpkg.com/browse/@icedesign/hr-management-admin-scaffold@3.0.4/),相对 2.x 改动点:
+
+- [兼容]将 react-router-dom 升级到 5.x 解决 warning 问题
+- [不兼容]将配置文件收敛到 `src/config/` 目录,`routerConfig.js -> config/routes.js`,`menuConfig.js -> config/menu.js`
## 升级指南
-官网上的文档都是基于最新的 3.x 版本目录规范,如果您的项目是基于旧版本的 icekit,请按照以下步骤升级到 3.x 版本:
+### 1.x 升级到 3.x
-### 1.x 升级 3.x
-1. 按照 3.x 目录规范将数据源配置、路由配置、导航菜单配置移入 `src/config/` 目录下
+1. 按照 3.x 目录规范将数据源配置、路由配置、导航菜单配置移入 `src/config/` 目录下,并修正引用这些文件的路径
2. 按照路由设计文档中的[路由配置](/docs/guide/dev/router#路由配置)部分,升级 `src/config/routes.js` 中的路由配置
-3. 按照路由设计文档中[路由生成](/docs/guide/dev/router#具体使用)部分,升级路由渲染逻辑文件 `src/router.jsx`,并将 `src/index.jsx` 中路由调用改成如下方式:
-
- ```javascript
- ...
- import router from './router';
- ...
-
- ReactDOM.render(
-
- {router()}
- ,
- ICE_CONTAINER
- );
- ```
-
-4. 将 Layout 中路由配置部分 `` 删除,并替换成 `children`
-
- ```javascript
- // 修改前
-
-
-
-
-
-
-
-
-
-
- // 修改后
-
-
-
-
- {this.props.children}
-
-
-
-
-
- ```
-
-5. 将 `src/menuConfig.js` 移入 `config` 目录下,路径为 `src/config/menu.js`
+3. 按照路由设计文档中[路由生成](/docs/guide/dev/router#具体使用)部分,升级路由渲染逻辑文件 `src/router.jsx`
+4. 将 `src/index.jsx` 中路由调用改成如下方式:
+
+ ```javascript
+ // ...
+ import router from './router';
+ // ...
+
+ ReactDOM.render(router(), ICE_CONTAINER);
+ ```
+
+4. 将 Layout 中路由相关配置移除,比如 ``,然后替换成 `props.children`
+
+ ```diff
+
+
+
+
+ -
+ + {props.children}
+
+
+
+
+ ```
### 2.x 升级 3.x
-由于 2.x 与 3.x 的唯一区别在于 `config` 目录,因此只需要将 `routerConfig` 与 `menuConfig`, `dataSourceConfig` 移入 `config` 目录中,目录结构如下:
-
-```markdown
-└── config/ # 配置信息
- ├── dataSource.js # 数据源配置
- ├── routes.js # 路由配置
- └── menu.js # 导航菜单配置
-```
-
+由于 2.x 与 3.x 的唯一区别在于 `config` 目录,因此只需要将 `routerConfig` 与 `menuConfig`, `dataSourceConfig` 移入 `config` 目录中,同时将引用地方的路径进行修正即可。
diff --git a/docs/iceworks/migrate.md b/docs/iceworks/migrate.md
index 8341668eec..f60b7dd637 100644
--- a/docs/iceworks/migrate.md
+++ b/docs/iceworks/migrate.md
@@ -12,6 +12,8 @@ order: 5
## 项目迁移方式
+因为 ICE 脚手架存在多个不同版本,因此需要通过配置告诉 iceworks 当前项目对应的脚手架版本(如果想要一并升级脚手架可参考文档[脚手架升级](/docs/guide/resource/migrate)):
+
如果旧项目根目录不存在 `ice.config.js` 文件,则在 `package.json` 中增加如下配置:
```json
@@ -30,7 +32,7 @@ const routerConfig = [
path: '/',
component: 'pages/Dashboard/index.jsx',
layout: 'layouts/BasicLayout',
- exact: true
+ exact: true
}, {
path: '/dashboard',
component: 'pages/Dashboard/index.jsx',
@@ -86,4 +88,4 @@ const routerConfig = [
}
```
-*注意:使用iceworks 3.0创建的新项目,adapter版本为`adapter-react-v3`*
+*注意:使用 iceworks 3.0 创建的新项目,adapter版本为 `adapter-react-v3`*