Некоторое время я задавался вопросом, почему я должен использовать Angular анимацию для анимации CSS. Я вижу несколько областей, которые можно было бы рассмотреть перед их использованием:
Спектакль
На первом этапе я нашел этот вопрос, который имеет дело только с перцептивной стороной вещей. Принятый ответ мне не подходит, потому что он утверждает, что везде, где это возможно, следует использовать анимацию CSS, чтобы можно было использовать такие оптимизации, как запуск анимации в отдельном потоке. Это, похоже, не так, потому что Угловая документация
Угловая анимация построена поверх стандартного API веб-анимаций и запускается на основе браузеров, которые ее поддерживают.
(акцент мой)
И когда мы смотрим проект API веб-анимаций, мы видим, что те же самые оптимизации могут применяться к веб-анимации, как к CSS, указанному в листах.
Хотя можно использовать ECMAScript для выполнения анимации с использованием requestAnimationFrame [HTML], такие анимации ведут себя по-разному с декларативной анимацией с точки зрения того, как они представлены в каскаде CSS и возможностях оптимизации производительности, таких как выполнение анимации в отдельном потоке, Используя интерфейс программирования Web Animations, можно создавать анимации из сценария, которые имеют те же характеристики поведения и производительности, что и декларативные анимации.
(снова акцент мой)
Помимо некоторых браузеров, таких как IE, не поддерживаются веб-анимации, есть ли какая-либо причина использовать объявления CSS над угловыми анимациями или наоборот? Я рассматриваю их как взаимозаменяемые.
Больше контроля над анимацией
Это может выглядеть как аргумент для угловых анимаций, потому что вы можете приостановить анимацию или использовать переменные JS с ней и т.д., Но то же самое верно при использовании, например. CSS- animation-play-state: pause
или использовать переменные CSS, указанные в JS, см. Документацию.
Теперь я вижу, что было бы неудобно устанавливать переменные CSS в JS-коде, но то же самое верно при использовании Angular animations. Они обычно объявляются в @Component
animations
@Component
и не имеют, за исключением использования свойства привязки данных состояния анимации, доступа к полям экземпляра (если вы не создаете анимацию через AnimationBuilder
конечно, что также не очень удобно или красивым либо).
Другое дело, с API веб-анимации можно проверять, отлаживать или тестировать анимации, но я не вижу, как это возможно с помощью Angular animations. Если да, не могли бы вы показать мне, как это сделать? Если это не так, я действительно не вижу преимущества использования угловых анимаций над CSS для управления.
Чистый код
Я прочитал, например, здесь пункт о том, что отделение анимации от "нормальных" стилей на самом деле разделение поведения и представления. Действительно ли объявление анимаций в стилях листы смешивания этих обязанностей? Я видел, что всегда наоборот, особенно глядя на CSS-правила в анимациях @Component
я чувствовал, что у меня есть объявления CSS на одном слишком много мест.
Итак, как это происходит с Угловой анимацией?
- Это просто удобная утилита для извлечения анимации от остальных стилей или же она приносит что-то достойное по размеру?
- Использует ли использование угловой анимации только в особых случаях или это соглашение, которое команда выбирает, чтобы пройти весь путь?
Мне бы хотелось здесь о ощутимых преимуществах использования Angular animations. Спасибо, парни!