目前提供了两种微应用模板【singleApp】、【spaApp】,这里所说的路由就是针对spaApp来讲的,首先切换到开发根目录执行命令:

  1. # 按照提示输入微应用名称、选择spaApp即可
  2. ucf new app

要明确路由对应的组件页面是哪个后,修改 ucf-apps/demo/src/routes/index.js 路由表

ucf-cli 1.4.0版本以前

  1. import React from "react";
  2. import { Route } from "mirrorx";
  3. import { ConnectedHome } from "./home/container";
  4. import { ConnectedContact } from "./contact/container";
  5. export default () => (
  6. <div className="route-content">
  7. <Route exact path="/" component={ConnectedHome} />
  8. <Route exact path="/home" component={ConnectedHome} />
  9. <Route exact path="/contact" component={ConnectedContact} />
  10. </div>
  11. );

ucf-cli 1.4.0版本及以后

  1. import React from "react";
  2. import { Route } from "mirrorx";
  3. // 引用mirrorx作为connect
  4. import mirror, { connect } from 'mirrorx';
  5. // 默认页面组件
  6. import Home from './home/components/IndexView';
  7. import Contact from './contact/components/IndexView';
  8. //引用模型
  9. import homeModel from './home/model';
  10. import contactModel from './contact/model';
  11. // 数据和组件UI关联、绑定
  12. mirror.model(homeModel);
  13. // 数据和组件UI关联、绑定
  14. mirror.model(contactModel);
  15. const ConnectedContact = connect(state => state.contact)(Contact);
  16. const ConnectedHome = connect(state => state.home)(Home);
  17. export default () => (
  18. <div className="route-content">
  19. <Route exact path="/" component={ConnectedHome} />
  20. <Route exact path="/home" component={ConnectedHome} />
  21. <Route exact path="/contact" component={ConnectedContact} />
  22. </div>
  23. );

可以看出,模板带了三个路由,分别是 / (默认首页) 、homecontact ,它们对应了三个组件,这三个组件实际上是三个页面级别的组件,然后在页面上进行组件拆分到routes文件夹里面,之间的文件归属关系如下:

ucf-cli 1.4.0版本以前

  1. routes
  2. ├── contact
  3. ├── components
  4. └── IndexView
  5. ├── index.js
  6. └── index.less
  7. ├── container.js
  8. ├── model.js
  9. └── service.js
  10. ├── home
  11. ├── components
  12. └── IndexView
  13. ├── index.js
  14. └── index.less
  15. ├── container.js
  16. ├── model.js
  17. └── service.js
  18. └── index.js
  19. 6 directories, 11 files

ucf-cli 1.4.0版本及以后

  1. routes
  2. ├── contact
  3. ├── components
  4. └── IndexView
  5. ├── index.js
  6. └── index.less
  7. ├── model.js
  8. └── service.js
  9. ├── home
  10. ├── components
  11. └── IndexView
  12. ├── index.js
  13. └── index.less
  14. ├── model.js
  15. └── service.js
  16. └── index.js
  17. 6 directories, 11 files

其中里面的 IndexView 就是默认首页组件存放,其余是拆分出来的组件,container(ucf-cli 1.4.0及以后版本将此文件与路由合并)modelservice 和前篇介绍的开发方式是一样的。
合理的拆分组件、布局页面组件和路由之间的关系才能清晰好维护。