Вызовите builder.load и затем дублируйте компонент - PullRequest
0 голосов
/ 30 октября 2018

В настоящее время я использую пользовательский интерфейс / строитель для загрузки компонента с файлами XML и JS, например:

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

Затем я добавляю компонент в существующее представление. Все это прекрасно работает, но я на самом деле вызываю это сотни раз, потому что родительский элемент содержит много этих компонентов (аналогично повторителю, содержащему много элементов). Нужно ли каждый раз вызывать метод builder.load с указанием пути к файлам xml / js или дублировать компонент в памяти? Будет ли такой выигрыш в производительности, или компоновщик nativescript уже хранит кэш ссылочных компонентов?

1 Ответ

0 голосов
/ 30 октября 2018

Это может быть снижение производительности, так как сборщик будет каждый раз анализировать XML для создания экземпляра JavaScript, вы можете сохранить ссылку на возвращенный компонент после первого вызова построителя.

Но это все равно может сказаться на производительности, так как вы собираетесь загрузить сотни компонентов. Вы должны рассмотреть возможность использования ListView, которая перезапускает неиспользуемые представления по мере необходимости.

Если вы используете конструктор / ретранслятор, вы фактически создаете сотни элементов на экране, а когда используется ListView, создаются только те элементы, которые видны на экране. При прокрутке вниз или вверх будут использоваться элементы, находящиеся вне экрана, что значительно повышает производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...