Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update doc with dynamic router support #110

Merged
merged 6 commits into from
Nov 20, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 13 additions & 11 deletions docs/layout.en-US.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,29 +55,31 @@ We abstract common layouts in Ant Design Pro, and put them in `/layouts`, includ
To manage mappings between routes and pages, we put configurations under `common/nav.js` as follows:

```jsx
const data = [{
component: BasicLayout,
name: 'Home', // for breadcrumb
export const getNavData = app => [{
component: dynamicWrapper(app, ['user'], import('../layouts/BasicLayout')), // for dynamic import
name: '首页', // for breadcrumb
Copy link
Contributor

@nikogu nikogu Nov 20, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

en-Us 里面这个貌似要改成英文?

path: '',
children: [{...}],
}, {
component: UserLayout,
component: dynamicWrapper(app, [], import('../layouts/UserLayout')),
children: [{
name: 'User',
name: '帐户',
icon: 'user',
path: 'user',
children: [{
name: 'Login',
name: '登录',
path: 'login',
component: Login,
component: dynamicWrapper(app, ['login'], import('../routes/User/Login')),
}, {
name: 'Register',
name: '注册',
path: 'register',
component: Register,
component: dynamic({
app,
models: dynamicWrapper(app, ['register'], import('../routes/User/Register')),
}, {
name: 'Register Result',
name: '注册结果',
path: 'register-result',
component: RegisterResult,
component: dynamicWrapper(app, [], import('../routes/User/RegisterResult')),
}],
}],
}];
Expand Down
16 changes: 9 additions & 7 deletions docs/layout.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,32 +50,34 @@ React.Children.forEach(children, function[(thisArg)])

### 如何使用 Ant Design Pro 布局

我们为了统一方便的管理路由和页面的关系,将配置信息统一抽离到 `common/nav.js` 下,通过如下配置:
我们为了统一方便的管理路由和页面的关系,将配置信息统一抽离到 `common/nav.js` 下,同时应用动态路由,通过如下配置:

```jsx
const data = [{
component: BasicLayout,
export const getNavData = app => [{
component: dynamicWrapper(app, ['user'], import('../layouts/BasicLayout')), // for dynamic import
name: '首页', // for breadcrumb
path: '',
children: [{...}],
}, {
component: UserLayout,
component: dynamicWrapper(app, [], import('../layouts/UserLayout')),
children: [{
name: '帐户',
icon: 'user',
path: 'user',
children: [{
name: '登录',
path: 'login',
component: Login,
component: dynamicWrapper(app, ['login'], import('../routes/User/Login')),
}, {
name: '注册',
path: 'register',
component: Register,
component: dynamic({
app,
models: dynamicWrapper(app, ['register'], import('../routes/User/Register')),
}, {
name: '注册结果',
path: 'register-result',
component: RegisterResult,
component: dynamicWrapper(app, [], import('../routes/User/RegisterResult')),
}],
}],
}];
Expand Down
16 changes: 8 additions & 8 deletions docs/router-and-nav.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ type: 入门
name: '新页面', // 页面名称,会展示在菜单栏中
path: 'new', // 匹配的路由
icon: 'file', // 页面图标,会展示在菜单栏中
component: NewPage, // 页面对应的组件,记得在页头引入 `import NewPage from '../routes/NewPage';`
component: dynamicWrapper(app, ['NewPageModel'], import('/path/to/NewPage')), // 动态引入NewPage页面和所需的Models
}
```

Expand All @@ -61,7 +61,7 @@ type: 入门

```js
{
component: NewLayout, // 新建的模板
component: dynamicWrapper(app, [], import('/path/to/NewLayout')), // 新建的模板,使用`dynamic`动态引入
layout: 'NewLayout', // 标记,生成路由时会用到
children: [{
name: '新布局', // 新布局下的页面都可以放到这里
Expand All @@ -70,7 +70,7 @@ type: 入门
children: [{
name: '新页面',
path: 'new-page',
component: NewPage,
component: dynamicWrapper(app, ['NewPageModel'], import('/path/to/NewPage')),
}],
}],
}
Expand All @@ -86,7 +86,7 @@ type: 入门
exact={item.exact}
key={item.path}
path={item.path}
component={item.component}
component={item.component} // dynamic import
/>
)
)
Expand All @@ -113,14 +113,14 @@ type: 入门
children: [{
name: '基础详情页',
path: 'basic',
component: BasicProfile,
component: dynamicWrapper(app, ['profile'], import('../routes/Profile/BasicProfile')),
}, {
name: '高级详情页',
path: 'advanced',
children: [{
name: '高级详情页',
path: ':id', // id 为参数名
component: AdvancedProfile,
component: dynamicWrapper(app, ['profile'], import('../routes/Profile/AdvancedProfile')),
}]
}],
}
Expand All @@ -139,9 +139,9 @@ type: 入门

```js
getChildContext() {
const { location } = this.props;
const { location, navData, getRouteData } = this.props;
const routeData = getRouteData('BasicLayout');
const menuData = getNavData().reduce((arr, current) => arr.concat(current.children), []);
const menuData = navData.reduce((arr, current) => arr.concat(current.children), []);
const breadcrumbNameMap = {};
routeData.concat(menuData).forEach((item) => {
breadcrumbNameMap[item.path] = item.name;
Expand Down