我在ng-repeat
内部有一个组件,有时它会创建非常多的组件(超过1000个),导致页面加载时出现明显的延迟(几秒钟)。 Profiler显示导致明显延迟的所有代码都在angular或angular-select(我的自定义组件使用)中执行,因此它与我的代码无关,尽管它可能与我正在设置的某些手表有关。 / p>
处理这个问题的常用方法是什么?是否可以只初始化一次组件并创建多个实例而无需多次调用相同的代码?
答案 0 :(得分:0)
通常,组件无法初始化一次并克隆。对于纯静态组件是可能的,但编译不会成为这种情况的瓶颈。
如果有大量的组件/指令实例必须同时显示,则必须修改它们以尽可能不使用数据绑定,或者使用一次性观察器。这样观察者可以将数量保持在理想的限度内(通常约为1000名观察者)。
可以使用自定义解决方案代替ng-repeat来提高性能。最好不要一次显示1000个组件。
Angular有几种无限滚动解决方案,可以将项目限制为可见区域中显示的项目。