Какая разница между BrowserAnimationsModule и NoopAnimationsModule?

С новым выпуском Angular-Material вам нужно добавить модуль для Angular-Animations. Вы можете выбирать между двумя браузерамиModule и NoopAnimationsModule. В официальном руководстве говорится:

Некоторые компоненты материала зависят от модуля угловой анимации, чтобы иметь возможность делать более сложные переходы. Если вы хотите, чтобы эти анимации работали в вашем приложении, вам необходимо установить модуль @angular/animations и включить в приложение приложение BrowserAnimationsModule.

npm install --save @angular/animations
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';

@NgModule({
  ...
  imports: [BrowserAnimationsModule],
  ...
})
export class PizzaPartyAppModule { }

Если вы не хотите добавлять другую зависимость в свой проект, вы можете использовать NoopAnimationsModule.

import {NoopAnimationsModule} from '@angular/platform-browser/animations';

@NgModule({
  ...
  imports: [NoopAnimationsModule],
  ...
})
export class PizzaPartyAppModule { }

Я не совсем понимаю, в чем разница. Кажется, точно так же :) Какая разница между двумя модулями?

Ответ 1

Поскольку имя noop ("no operation") говорит, что этот модуль ничего не делает. Это служебный модуль, который издевается над реальным модулем анимации, но фактически не оживляет.

Это может быть удобно на платформах, где анимация будет слишком медленной или для модульного тестирования, если анимация не участвует в том, что вы на самом деле хотите протестировать.

Ответ 2

BROWSER_ANIMATIONS_PROVIDERS используется для реального применения

Отделите поставщиков от фактического модуля, чтобы мы могли внести локальную модификацию в Google3, чтобы включить их в BrowserModule.

BROWSER_NOOP_ANIMATIONS_PROVIDERS используется для тестирования

Отделите поставщиков от фактического модуля, чтобы мы могли внести локальную модификацию в Google3, чтобы включить их в BrowserTestingModule.