В нашем приложении Angular 2+ мы используем проникающий в тень комбинатор потомков /deep/
вместе с host
практически везде, где мы хотим изменить стили компонентов-потомков. Потом я узнал, что /deep/
и его синоним >>>
устарели в Angular, Sass и браузерах (в Shadow DOM v0).
Это вызвало много неуверенности, особенно потому, что был выпущен Chrome 63, но наши приложения все еще работают нормально, пока я не узнал, что по умолчанию Angular 2+ эмулирует инкапсуляцию представления:
encapsulation: ViewEncapsulation.Emulated
Это означает, что на самом деле нет необходимости паниковать. Эмуляция не использует устаревшие функции. Тем не менее, в документации Angular говорится, что все они, наряду с ::ng-deep
, устарели, но в Интернете, похоже, существует консенсус в отношении того, что ::ng-deep
является меньшим злом и его следует использовать на данный момент.