gpt4 book ai didi

javascript - 为什么要切片不纯的管道?

转载 作者:行者123 更新时间:2023-12-04 01:27:40 27 4
gpt4 key购买 nike

我一直相信slice是纯粹的,它比调用 slice 的唯一优势字符串或数组上的方法是 Angular 中纯管道的缓存机制。

事实并非如此,slice是不纯的。此外,实现是非常基础的:它可以防止 null s 和代表 slice方法。没有对最后转换的输入进行内部比较。

我怀疑它的设计是为了符合 ngFor 的行为。 ,但这是一个可行的理由吗?新来的人会提示Angular坏了,否则我想,但我又为什么要使用这个管道呢?

我是否正确,它在每次更改检测运行时都会创建新数组,这会导致触发甚至 OnPush将检测更改为三个并取消性能优化?

编辑:这个问题是基于一个应该使用不可变数据的假设。

最佳答案

这个管道是不纯的,因为它会在数组引用更改之前返回相同的结果,因此当数组项更改时它不会工作。

我个人认为使用这样的管道是不好的设计。他们删除了 FilterPipe因为性能问题。确实,每次更改检测都会触发一个管道,而且有很多!我认为切片管也应该被移除。对我来说,这是一个快速而肮脏的解决方案,带来的问题多于解决的问题。

我建议您在需要时自己切片阵列。

关于javascript - 为什么要切片不纯的管道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52273769/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com