5-7 操作符和 Async 管道

rxjs的精彩之处是它可以有一些操作符。它有非常强大的操作符。它不仅仅限于这个表达形式

filter是用来过滤的。

然后再用map获取到tabLinkk这个参数。它有一组参数,但是我们只关心 tabLink.
这个流当中本来是一组参数,我只得到tabLink这一个参数




批量把param改名字。按住F2同时整体改名字。




rxjs是一个数据流,pipe是管道,在这个管道中,我们用了各种各样的操作符。可以把操作符想象成 各个弯头,闸门,它会水流变换成不同的样子。
filter相当于是分流,拦住一些东西,放行一些东西。
map相当于原来的水流是粗的或者细的,我把它转换成另外一种形式。它是一个变形的东西。

可以任意的操作这些数据流


下面这里看起来还不是很优雅





那么html内我们怎么使用它呢?


通过async管道。记住用括号括起来。括号里面就表示它的优先级别比较高。先进行管道的转换然后再和hot作比较。
async就是在模板中帮你做订阅,

带来好处是你不用再去写脏值监测,angular会帮你做处理。

页面效果


功能实现了,并且用了更少的代码

这里加$符号是rxjs惯例的一个写法。加上$符号让你意识到它是一个流

改造2

这里进行修改










页面效果不变

这样做的好处

这样做的好处是,我们不需要清理订阅。
正常情况下 需要你在ngDestory里面要清理订阅函数。

像这种,我们就要清理订阅,如果不取消订阅的话,就会有内存泄露。


并是不所有的情况都用async管道的。


有的时候还是要用标准的subscribe去做。一定要记住要在ngDestory的时候去取消订阅。

HomeContainer改造。




这样可以把它变成onPush,因为我们使用了async管道。就可以把它变为一个笨组件了。

 

结束




 

posted @ 2020-08-31 12:37  高山-景行  阅读(233)  评论(0编辑  收藏  举报