1

SPEED & ИСПОЛНЕНИЕделает angular2-beta.0 действительно кэширует представление?

Угловой 2 драматический быстрее, чем Угловые 1 с поддержкой быстрых начальных нагрузок через сервер на стороне предварительной визуализацию, в автономном режиме компиляции для быстрого запуска и кэширование обнаружения и просмотра сверхбыстрых изменений для плавная виртуальная прокрутка и быстрые переходы.

Особенности выглядят отлично, но нормальная потребность в том, что, когда я перейти от ListComponent к ViewComponent, я хочу держать ListComponent кэшируются так, когда я нажимаю назад от ViewComponent, то ListComponent не нужно засавить (ListComponent часто получает данные AJAX со страницы 2,3 и т. д. Я знаю, что могу хранить данные в службе и хранить scrollPosition, когда я нажимаю на нее, но это снова приведет к повторной передаче данных. Я действительно думаю, что кеширование это лучший способ.

Я реализую CanReuse, но он не работает, он работает только при навигации между ViewComponents. Итак, я хочу знать, как может работать кеширование ListComponent до ViewComponent.

ответ

1

Используйте ProtoViewRef класса:

ProtoView является Прототипом View, который является результатом шаблона компиляции и используется Угловым для эффективного создания экземпляра этого вида на основе скомпилированного шаблона.

Большинство ProtoViews создаются и используются внутри устройства Angular, и вам не нужно знать о них, за исключением расширенных прецедентов, в которых вы сами компилируете компоненты с помощью низкоуровневого API компилятора.

Пример

С учетом этого шаблона:

Count: {{items.length}} 
    <ul> 
    <li *ngFor="var item of items">{{item}}</li> 
    </ul> 

Угловые desugars и компилирует шаблон в двух ProtoViews:

  • Внешний ProtoView:

    Count: {{items.length}} 
    <ul> 
        <template ngFor var-item [ngForOf]="items"></template> 
    </ul> 
    
  • Внутренняя ProtoView:

    <li>{{item}}</li> 
    

Обратите внимание, что исходный шаблон разбивается на два отдельных ProtoViews.

Список литературы

Смежные вопросы