调用builder.load,然后复制组件

时间:2018-10-30 16:32:00

标签: nativescript

我目前正在使用ui / builder来加载具有xml和js文件的组件,如下所示:

let component = builder.load({
    path: 'pages/path/to/component',
    name: 'component'
});

然后将组件添加到现有视图。一切正常,但实际上我最多调用了数百次,因为父级包含许多这些组件(类似于包含很多项目的转发器)。每次都需要使用xml / js文件的路径来调用builder.load方法,还是可以复制内存中的组件?以这种方式执行操作是否会对性能产生好处,或者nativescript构建器是否已经保留了引用组件的缓存?

1 个答案:

答案 0 :(得分:0)

这可能会降低性能,因为构建器每次都会解析XML来创建JavaScript实例,您可以在首次调用builder后保留对返回组件的引用。

但是当您要加载100个组件时,性能仍然会受到影响。您必须考虑使用ListView来根据需要回收未使用的视图。

如果使用生成器/转发器,则实际上是在屏幕上创建100个元素,而使用ListView时,它只会创建在屏幕上可见的元素。当您上下滚动时,它将重用屏幕外的元素,从而大大提高了性能。