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

Существует множество способов работы с анимацией CSS с помощью React, от собственного решения до сторонних библиотек.

Зачем использовать анимацию в React?

Есть много причин, по которым вы можете захотеть использовать анимацию в своем приложении React. Некоторые из наиболее распространенных причин включают в себя:

  • Взаимодействие кажется более естественным. Анимация может помочь сделать взаимодействие с пользователем более естественным и плавным. Например, если вы используете компонент-переключатель, вы можете захотеть анимировать кнопку-переключатель между состояниями «включено» и «выключено». Другой пример — индикаторы выполнения, вы можете создать анимированный индикатор выполнения для страниц вашего реагирующего приложения.
  • Предоставление визуальной обратной связи
    instagram viewer
    . Анимации могут обеспечивать визуальную обратную связь с пользователем. Например, если пользователь нажимает кнопку, вы можете захотеть анимировать кнопку, чтобы указать, что приложение зарегистрировало это действие.
  • Управление вниманием пользователя. Анимации могут направить внимание пользователя на определенный элемент. Например, если у вас есть модальное диалоговое окно, которое появляется на экране, вы можете использовать анимацию, чтобы привлечь к нему внимание пользователя.
  • Создание чувства срочности.Анимация может создать ощущение срочности или важности. Например, если у вас есть компонент таймера, который ведет обратный отсчет, вы можете использовать анимацию, чтобы отразить срочность по мере приближения крайнего срока.

Есть несколько способов добавить анимацию в компоненты React. Три из них, о которых вы узнаете, — это встроенные анимации, библиотека react-animations и react-simple-animate.

Начать через создание базового реагирующего приложения, затем следуйте выбранному вами методу.

Метод 1: использование анимации встроенного стиля

Например, допустим, вы хотите анимировать компонент, чтобы он исчезал при нажатии кнопки. Вы можете сделать это с помощью следующего кода:

Импортировать Реагировать, {Компонент} от 'реагировать';

сортFadeInOutрасширяетКомпонент{
конструктор(реквизит) {
супер(реквизит);

этот.состояние = {
виден: ЛОЖЬ
};
}

оказывать() {
константа стили = {
непрозрачность: этот.состояние.isVisible? 1: 0,
переход: 'непрозрачность 2 с'
};

возвращаться (
<див>
<стиль div={стили}>
Привет, мир!
</div>
<кнопка onClick={this.toggleVisibility}>
Переключать
</button>
</div>
);
}

toggleVisibility = () => {
этот.setState (prevState => ({
виден: !предыдущее состояние.isVisible
}));
}
}

экспортпо умолчанию Исчезновение;

В этом примере объект стиля имеет свойства непрозрачности и перехода. Непрозрачность равна 0, когда компонент не виден, и 1, когда он виден. Свойство перехода — «opacity 2s», что приведет к переходу непрозрачности в течение двух секунд при ее изменении.

Кнопка переключает видимость компонента. Когда кто-то нажимает кнопку, переменная состояния isVisible обновляется, и компонент появляется или исчезает в зависимости от его текущего состояния.

Способ 2: использование библиотеки реактивных анимаций

Еще один способ добавить анимацию в компоненты React — использовать библиотеку, например react-animations. Эта библиотека предоставляет набор предопределенных анимаций, которые вы можете использовать в своих компонентах React.

Чтобы использовать реагирующую анимацию, вам сначала нужно установить библиотеку:

нпм установить реактивная анимация --сохранять

Вам также необходимо установить aphrodite, которая зависит от реактивных анимаций:

нпм установить Афродита --сохранять

После того, как вы установили библиотеки, вы можете импортировать анимации, которые хотите использовать:

Импортировать { постепенное появление, исчезновение } от «реагировать-анимации»;

Затем вы можете использовать анимацию в своих компонентах:

Импортировать Реагировать, {Компонент} от 'реагировать';
Импортировать {Таблица стилей, css} от 'Афродита';
Импортировать { постепенное появление, исчезновение } от «реагировать-анимации»;

константа стили = Таблица стилей.create({
исчезновение: {
анимацияНазвание: исчезать,
анимацияПродолжительность: '2 с'
},
исчезать: {
анимацияНазвание: исчезать,
анимацияПродолжительность: '2 с'
}
});

сортFadeInOutрасширяетКомпонент{
конструктор(реквизит) {
супер(реквизит);

этот.состояние = {
виден: ЛОЖЬ
};
}

оказывать() {
константа имя_класса = этот.state.isVisible? css (styles.fadeIn): css (styles.fadeOut);

возвращаться (
<див>
<div имя_класса={имя_класса}>
Привет, мир!
</div>
<кнопка onClick={this.toggleVisibility}>
Переключать
</button>
</div>
);
}

toggleVisibility = () => {
этот.setState (prevState => ({
виден: !предыдущее состояние.isVisible
}));
}
}

экспортпо умолчанию Исчезновение;

Этот пример начинается с импорта анимаций fadeIn и fadeOut из библиотеки реактивных анимаций. Затем он определяет объект стилей с анимациями fadeIn и fadeOut, а для параметра animationDuration установлено значение две секунды.

Кнопка переключает видимость компонента. Когда кто-то щелкнет по нему, переменная состояния isVisible обновится, и компонент будет исчезать или исчезать в зависимости от его текущего состояния.

Способ 3: использование библиотеки react-simple-animate

Библиотека react-simple-animate предоставляет простой способ добавления анимации в компоненты React. Он предлагает декларативный API, который упрощает определение сложных анимаций.

Чтобы использовать библиотеку, ее необходимо сначала установить:

нпм установить реагировать-просто-анимировать --сохранять

Затем вы можете использовать его в своих компонентах:

Импортировать Реагировать, {Компонент} от 'реагировать';
Импортировать { Анимация, анимация ключевых кадров} от "реагировать-просто-анимировать";

сортПриложениерасширяетКомпонент{
оказывать() {
возвращаться (
<див>
<Анимировать
играть
начинать={{
непрозрачность: 0
}}
конец={{
непрозрачность: 1
}}
>
<див>
Привет, мир!
</div>
</Animate>
<АнимацияКлючевые кадры
играть
продолжительность = {2}
ключевые кадры={[
{ непрозрачность: 0, преобразование: 'перевестиX(-100px)' },
{ непрозрачность: 1, преобразование: 'перевестиX(0px)' }
]}
>
<див>
Привет, мир!
</div>
</AnimateKeyframes>
</div>
);
}
}

экспортпо умолчанию Приложение;

Анимировать компонент исчезает в элементе div. Он начинается с непрозрачности 0 и заканчивается непрозрачностью 1. Свойство play имеет значение true, что заставит анимацию воспроизводиться автоматически при монтировании компонента.

АнимацияКлючевые кадры компонент анимирует элемент div в течение двух секунд. Массив ключевых кадров определяет начальное и конечное состояния анимации. Первый ключевой кадр имеет непрозрачность 0 и значение translateX -100px. Второй ключевой кадр имеет непрозрачность 1 и значение translateX 0px.

Увеличьте вовлеченность пользователей с помощью анимации

Теперь вы знаете, как можно использовать анимацию в своем приложении React. Вы можете использовать анимацию, чтобы увеличить взаимодействие пользователей с вашим приложением.

Например, вы можете использовать анимацию, чтобы вознаградить пользователя за выполнение задачи. Это может быть что-то простое, например, короткая анимация «спиннер» или более сложная анимация, которая воспроизводится, когда пользователь проходит уровень в игре.

Вы также можете бесплатно развернуть свое приложение React в Интернете с помощью таких сервисов, как страницы Github или Heroku.