6-2 创建底部 TabBar(2)

输出型的属性和输入型的输入 对应上,这里先为空

这个输入型的属性从哪里来? 它要从路由来

参数hot就应该选中首页

如果是recommend就应该选择推荐

路由是一个流的参数

事件的处理

参数类型是tabItem


声明数据流,它是一个Observable的number类型的

现在我们这里直接是路由,而不是路由参数的形式。那么这行情况下我们怎么去处理呢?

路由事件

新的概念,路由事件。跟卤下把enableTracing设置为true

刷新页面,这些就都是路由事件

路由事件里面都有路由的id和url



我们要看下url是什么,从url中解析它。那么url这些东西我们怎么去监测呢?
注入router,然后继承onInit

路由的events是一个Observable类型的

我们把NavigationEnd事件过滤出来。

然后对NavigationEnd做处理。


把url用"/"去拆分,这样就得到了一个数组。

斜线拆分,数组元素大于1

大于1取第一个元素,否则就默认为home。这个时候我们得到的是一个字符串。

根据字符串,把索引找到。通过和link这些值比较。











最后默认值就是0

小技巧。就是首页放最后。前面如果都不匹配的话,就默认为首页。

在做一次map使用下面的方法。这样最终我们就得到了索引。

 

点击跳转

注意[]是一个数组的形式。


点击报错。因为我们的路由还没有添加进去。

recommend其实是传进去了

总结

路由事件是可以通过router.events事件去监听的。

监听的时候它是一个流

我们根据他不同的事件类型,去做相应的处理。




 

结束

原文地址:https://www.cnblogs.com/wangjunwei/p/13592155.html