为什么我可以从@angular/animations 和@angular/core 导入动画组件?

Why can I import animation components from both @angular/animations and @angular/core?

我最近更新到 angular 4 并检查了 animations docs 我发现我应该从 @angular/animations 导入触发器、动画和过渡。

import {
  Component,
  Input
} from '@angular/core';
import {
  trigger,
  state,
  style,
  animate,
  transition
} from '@angular/animations';

然而,在我的项目中,到目前为止我一直在从@angular/core 导入并且一切正常,即使在动画与核心分离之后也是如此。

import { ... trigger, state, style, animate, transition } from '@angular/core';

为什么 angular 核心仍然持有这些动画组件?也许向后兼容?为什么不将其从核心中完全删除?

从@angular/core 导入已弃用

https://angular.io/api/core/animate

该符号已移动。请改为从@angular/animations 导入!

我想他们总有一天会把它们从 core 中移除。

取自 changelog。它已被弃用,但您仍然可以在您的应用程序中使用它。并不是所有的程序员都有在每次发布新版本时更新他们的应用程序的奢侈。这只是一个警告,您应该更新您的代码,以便在主要版本发布时,您的迁移将顺利进行。希望这有帮助。