Оживите свое приложение React с помощью анимации

55
технологии 36.webp

Последнее обновление 05.01.2023 — Василий Иванов

Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию.

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

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

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

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

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

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

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

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

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

import React, { Component } from 'react';

class FadeInOut extends Component {
constructor(props) {
super(props);

this.state = {
isVisible: false
};
}

render() {
const styles = {
opacity: this.state.isVisible ? 1 : 0,
transition: 'opacity 2s'
};

return (
<div>
<div style={styles}>
Hello, world!
</div>
<button onClick={this.toggleVisibility}>
Toggle
</button>
</div>
);
}

toggleVisibility = () => {
this.setState(prevState => ({
isVisible: !prevState.isVisible
}));
}
}

export default FadeInOut;

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

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

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

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

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

npm install react-animations --save

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

npm install aphrodite --save

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

import { fadeIn, fadeOut } from 'react-animations';

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

import React, { Component } from 'react';
import { StyleSheet, css } from 'aphrodite';
import { fadeIn, fadeOut } from 'react-animations';

const styles = StyleSheet.create({
fadeIn: {
animationName: fadeIn,
animationDuration: '2s'
},
fadeOut: {
animationName: fadeOut,
animationDuration: '2s'
}
});

class FadeInOut extends Component {
constructor(props) {
super(props);

this.state = {
isVisible: false
};
}

render() {
const className = this.state.isVisible ? css(styles.fadeIn) : css(styles.fadeOut);

return (
<div>
<div className={className}>
Hello, world!
</div>
<button onClick={this.toggleVisibility}>
Toggle
</button>
</div>
);
}

toggleVisibility = () => {
this.setState(prevState => ({
isVisible: !prevState.isVisible
}));
}
}

export default FadeInOut;

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

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

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

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

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

npm install react-simple-animate --save

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

import React, { Component } from 'react';
import { Animate, AnimateKeyframes} from "react-simple-animate";

class App extends Component {
render() {
return (
<div>
<Animate
play
start={{
opacity: 0
}}
end={{
opacity: 1
}}
>
<div>
Hello, world!
</div>
</Animate>
<AnimateKeyframes
play
duration={2}
keyframes={[
{ opacity: 0, transform: 'translateX(-100px)' },
{ opacity: 1, transform: 'translateX(0px)' }
]}
>
<div>
Hello, world!
</div>
</AnimateKeyframes>
</div>
);
}
}

export default App;

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

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

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

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

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

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