Angular4相同路由问题

图片描述
图片描述
图片描述
图片描述

想知道配置了许多组件,对应的path都为""这是什么意思,
比如根组件有一个/index一个""然后index下又有一个 "" 这两个path=""应该表示的是默认路由的意思,但是为什么出现了两次,每次都是什么意思.

还想问一下路由的加载机制,是一开遍历组件树就加载好了吗?

阅读 2.9k
3 个回答

官方文档的原话是:

Empty-path route configurations can be used to instantiate components that do not 'consume' any url segments.

其实就是说将path设置空字符串,就是告诉router要一进入这个view时默认加载配置的组件,而不需要额外的字符配置。当有子路由时非常的有用。
当加载子路由时,同样也是可以设置默认path,来告诉router默认加载哪个子组件,因为子路由下面也会有很多的子组件。
当使用children配置子路由时,初始路由时,angular会跟将子路由一起配置到主路由里面。
当使用loadChildren来配置子路由时,会延迟加载,当匹配到子路由配置的path时,NgModuleFactoryLoader 会读取到对应的路由module,然后将路由信息提取出来,放到主路由下面。

默认路由,表示进去默认加载哪个组件,一开始表示默认加载index界面,但是index是一个Module,它里面有很多的界面,第二个“”表示进入index界面后进去应该默认加载SubHeader界面。

path=""相当于上一级的路由地址,例如AuthRoutingModule里的{path:'auth',component:'AuthComponent'},则AuthComponent的地址为它的上一级{path:'login',loadchlidren:'......'}
至于IndexModule里的两个path="",可能是抽离了IndexComponent和以后会拓展加入的组件的公共部分放入SubheaderTypeSearchComponent
路由的加载是一开始就加载所有非懒加载的路由,懒加载的路由等待激活对应的路由才进行加载

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进