从角2/4即将路线,我们将尽我们的路线是这样的:有道指定的Vue公司的组件
guide.component.ts:
@Component({
selector: 'app-guide',
templateUrl: './guide.component.html',
styleUrls: ['./guide.component.scss']
})
export class GuideComponent implements OnInit, OnDestroy {
导routing.module.ts:
const routes: Routes = [
{
path: 'guide/:layout',
component: GuideComponent
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class GuideRoutingModule { }
guide.module.ts:
@NgModule({
imports: [
CommonModule,
// Routing comes last
GuideRoutingModule
我认为这是一个非常好的方式,因为无论是使用GuideComponent,都不必关心什么,如何或者是否有路线。
在Vue公司,我们正在做的有向下传递的路线,一路到app.ts:
detail.component.ts:
@Component({
template,
name: 'Detail',
components: {
Something
}
})
export class Detail extends Vue {
detail.route.ts:
export const detailRoute: RouteConfig = {
path: '/detail/:id',
component: Detail,
props: (route: Route) => ({
state: route.query.state
})
};
component.routes.ts:
export const componentRoutes = [
detailRoute
];
core.route.ts:
export const coreRoute = {
path: '/',
component: Core,
props: (route: Route) => ({
showPlayer: route.query.player === 'true' || !route.query.player
}),
children: [
...componentRoutes
]
};
app.ts:
const router = new VueRouter({
routes: [coreRoute]
});
// Bootstrap Vue app
export default new Vue({
store,
router,
有没有更好/更清洁的方式做到这一点?也许这样,组件就消耗了路由本身,路由也不必沿着层次结构走下去了。
我们现在正在做类似的事情,我不太喜欢它;我想要的是在组件上定义路由,所以当我引入组件时,路由会随之而来(如Angular的模块)。 –
更新了我的答案。 – whoacowboy
我们最终决定,我们应该停止尝试像Angular那样对待Vue。它不支持模块,因此嵌套的应用程序层次结构很难实现。我们决定Vue更适合平面建筑。 –