angularjs 中 ng-repeat 和 collection-repeat 之间的区别
Difference between ng-repeat and collection-repeat in angularjs?
>我对ng-repeat和collection-repeat有点困惑
ng-重复
<ion-item ng-repeat="item in items" >
...
</ion-item>
收集重复
<ion-item collection-repeat="item in items">
...
</ion-item>
以上两条线都做得很好,而且是一样的。
如果有什么不同,请告诉我。 另外我有 1000 个项目,那么哪个更适合这种情况? 渲染速度如何,性能状态如何?
collection-repeat
不是Angularjs的一部分。据我所知,它来自Ionic Framework。正如文档所说collection-repeat
被创建为使用而不是ng-repeat
因为它可能更适合大量项目。
collection-repeat
允许应用程序显示大量项目列表 性能高于ng-repeat
Collection Repeat是Ionic用于滚动巨大列表的黄油平滑解决方案。 collection-repeat可用于大型项目列表,并且在处理大型数据集时具有高性能。它仅呈现到当前可见的项数中。这意味着在可容纳八个项目的手机屏幕上,只会呈现与当前滚动位置匹配的八个项目。
ng重复角度核心模块的一部分。ngRepeat 指令实例化集合中每个项一次模板。每个模板实例都有自己的范围,其中给定的循环变量设置为当前集合项,$index设置为项索引或键。
根据用例,您可以使用任何选项。但是,如果您将离子框架用于移动设备,那么我建议您重复收集。
此外,如果需要使用 ng-repeat,建议在服务器端处理数据并逐个部分请求。这样,您就可以在客户端获得高性能和更少的处理。另一种选择是将大型数据集存储在客户端浏览器中,然后使用该数据集处理数据。
如果是 1000 elements
,我强烈建议collection-repeat
。它更灵活,并且可以渲染尽可能多的items
,collection
可以容纳屏幕。其余的都是动态加载的,您甚至可以使用 200K 集合,它也会顺利进行。 ng-repeat
渲染collection
项,直到完成,因此性能会差得多。
所以collection-repeat
它是我的朋友。
祝你的发展好运!
注意:collection-repeat
不是角芯的一部分,请在此处查看更多信息:http://ionicframework.com/docs/api/directive/collectionRepeat/
我了解,ng-repeat适用于少量项目,而收集重复非常适合用于大量项目。它实际上是关于在设备中查看/渲染时的性能。为了更好地理解,你可以看这个视频,它真的帮助我理解了它。
简单来说 -Ionic有一个集合重复指令,当你需要显示非常大的列表时,你可以使用它来代替ng-repeat。
它是如何工作的?深)
该模块分为两个组件,$repeatFactory(定义帮助程序函数的服务)和 collectRepeat(大多数逻辑所在的指令)。
从工厂中得到的最重要的收获是重复管理器方法。它是在指令的链接函数的开头实例化的构造器,负责维护滚动视图的状态。
在创建 repeatManager 的新实例时,还需要生成一个新对象(或映射),以便为已包含、呈现且其范围已更新的所有项提供参考。还必须注册封闭的父元素,以便我们以后可以将其高度更改为集合中所有项的高度。
接下来,在集合上设置一个监视,并在集合更改时调用匿名函数。这是大部分逻辑所在的位置。它分为三个步骤。
- 包含并呈现集合的第一个元素,以便可以注册每个单独项的高度和其他属性,调整父div 的高度,并计算视区的大小 确定视口
- 大小后,循环并渲染视口内可容纳的 n 个项目(加上一些额外的平滑度)。
- 在 .scroll-content 上设置一个"scroll"事件侦听器,以返回集合第一个元素的 scrollHeight,并仅呈现必要的元素。
下面的代码中提供了一些额外的花絮(也称为注释)。如果您在遵循上述概要时遇到问题,它应该有助于减轻一些困惑。该模块也可以在github上使用。
GitHub
差异 - 工作示例
在这里编码
- 全局变量和全局对象的属性之间有什么区别吗
- JavaScript中的函数和对象之间没有区别吗?
- 在下划线中使用_(obj).map(callback)和_.map(obj,callback)之间的区别
- javascript函数的:和=之间的区别
- 什么's本地node.js服务器和python简单http服务器之间的区别
- 函数中this和var之间的区别
- “util.inherits”和在NodeJS中扩展原型之间的区别
- Math.min()和Math.max()之间有什么区别?在Javascript中
- webpack开发模式和生产构建模式之间有什么区别
- servlet和代理servlet之间的区别
- Javascript 类型未定义和 void 之间的区别
- Javascript-defineProperty和直接在对象上定义函数之间的区别
- 关于承诺/A+规范,术语“当时可”和“承诺”之间有什么区别
- 布局引擎和javascript引擎之间的区别
- 什么's extjs中的mon()和on()之间的区别
- type=text/javascript和language=javascript之间的区别
- 函数()和新函数()之间的区别
- JavaScript中let和var之间的区别
- 蓝鸟的done()和spread()之间的区别
- Node.js HTTP/NET——连接和请求之间的区别