Angular路由与项目结构的关系

1、项目结构决定路由配置

Angular项目如何定义路由?我的一个做法是先确定项目的特性目录,即分清楚各个模块及其子模块,每个模块中的父子组件关系。理清模块(module)、模版(template)、组件(component)。模版提供插口router-outlet用于命中路由之后接入路由指向的页面。路由一般按照module组织,即一个module配一个路由模块(router module)。

比如一个项目有三个模块,首页、购物车、个人中心三个模块。默认页为首页。

根组件中配置一个根路由模块,home指向首页,cart指向购物车,personCenter指向个人中心。默认指向首页。

app模版页面需要安置一个路由出口,用于插放这三个模块中的一个;

home,cart,personCenter该写成组件还是一个module呢?

个人习惯把这三大块写成module,并通过loadChildren把它们懒加载进来。如果规模不大,个人认为也可以把home,cart,personCenter当作三个组件,即这三个组件都在app module。

每个模块中的分析思路也是依据上面的思路进行划分组织。

最终,如果是把首页、购物车、个人中心当作三个模块,链接一般是这样的:

域名/home/xxx,首页模块的路由

域名/cart/xxx,购物车模块路由

2、loadChildren与children

loadChildren是懒加载模块,上例中说的购物车、个人中心等通过loadChildren加载。加载子模块。需要用到的时候再加载出来,不会再初始的时候加载。

children是一条路由中的一个属性,它的路由出口在组件对应的模板上。

{path:'home',component:HomeComponent, children:[{path:'hot',component:Hot},{path:'onsale',component:Onsale}]}

此时Hot和Onsale的出口在HomeComponent对应的模板上,它们是homecomponent的子组件。

举个例子,比如home首页有热卖、促销两个页面,并通过按钮切换,则可以把hot和onsale当作home的children。home模版中需要安插一个路由出口,用于插放hot或者onsale。

最终域名/home/hot会加载首页,然后在首页上加载子组件hot。

后续补充实际的例子

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值