目前提供了两种微应用模板【singleApp】、【spaApp】,这里所说的路由就是针对spaApp来讲的,首先切换到开发根目录执行命令:
# 按照提示输入微应用名称、选择spaApp即可ucf new app
要明确路由对应的组件页面是哪个后,修改 ucf-apps/demo/src/routes/index.js 路由表
ucf-cli 1.4.0版本以前
import React from "react";import { Route } from "mirrorx";import { ConnectedHome } from "./home/container";import { ConnectedContact } from "./contact/container";export default () => (<div className="route-content"><Route exact path="/" component={ConnectedHome} /><Route exact path="/home" component={ConnectedHome} /><Route exact path="/contact" component={ConnectedContact} /></div>);
ucf-cli 1.4.0版本及以后
import React from "react";import { Route } from "mirrorx";// 引用mirrorx作为connectimport mirror, { connect } from 'mirrorx';// 默认页面组件import Home from './home/components/IndexView';import Contact from './contact/components/IndexView';//引用模型import homeModel from './home/model';import contactModel from './contact/model';// 数据和组件UI关联、绑定mirror.model(homeModel);// 数据和组件UI关联、绑定mirror.model(contactModel);const ConnectedContact = connect(state => state.contact)(Contact);const ConnectedHome = connect(state => state.home)(Home);export default () => (<div className="route-content"><Route exact path="/" component={ConnectedHome} /><Route exact path="/home" component={ConnectedHome} /><Route exact path="/contact" component={ConnectedContact} /></div>);
可以看出,模板带了三个路由,分别是 / (默认首页) 、home、contact ,它们对应了三个组件,这三个组件实际上是三个页面级别的组件,然后在页面上进行组件拆分到routes文件夹里面,之间的文件归属关系如下:
ucf-cli 1.4.0版本以前
routes├── contact│ ├── components│ │ └── IndexView│ │ ├── index.js│ │ └── index.less│ ├── container.js│ ├── model.js│ └── service.js├── home│ ├── components│ │ └── IndexView│ │ ├── index.js│ │ └── index.less│ ├── container.js│ ├── model.js│ └── service.js└── index.js6 directories, 11 files
ucf-cli 1.4.0版本及以后
routes├── contact│ ├── components│ │ └── IndexView│ │ ├── index.js│ │ └── index.less│ ├── model.js│ └── service.js├── home│ ├── components│ │ └── IndexView│ │ ├── index.js│ │ └── index.less│ ├── model.js│ └── service.js└── index.js6 directories, 11 files
其中里面的 IndexView 就是默认首页组件存放,其余是拆分出来的组件,container(ucf-cli 1.4.0及以后版本将此文件与路由合并) 、model 、 service 和前篇介绍的开发方式是一样的。
合理的拆分组件、布局页面组件和路由之间的关系才能清晰好维护。
