Узнайте, как легко и эффективно анимировать компоненты в React Native.

Анимации могут вдохнуть жизнь в приложение, делая его более привлекательным и интуитивно понятным для пользователя. Но если вы новичок в анимации React Native, начало работы может быть немного сложным.

Изучите анимацию React Native и узнайте, как начать создавать красивую плавную анимацию.

Как работают нативные анимации Basic React?

Анимации могут создавать плавные переходы между различными экранами или элементами. Они могут выделять информацию или давать обратную связь о действиях пользователя. Анимации могут быть простыми или сложными и могут использовать различные методы, такие как 2D или 3D движущаяся графика.

Портативность React Native делает его достойным использования если вы ориентируетесь на несколько платформ. Одной из его самых сильных сторон является возможность создавать красивую анимацию для мобильных приложений.

Вы можете анимировать объект React Native, просто изменив положение желаемого компонента.

Например:

instagram viewer
Импортировать Реагировать, {useState, useEffect} от«реагировать»;
Импортировать { Вид, таблица стилей } от«реагирующий нативный»;

константа Приложение = () => {
// Инициализируем состояние для отслеживания положения коробки
константа [boxPosition, setBoxPosition] = useState(0);

// Используем хук useEffect для обновления позиции блока каждую 1 секунду
использоватьЭффект(() => {
константа интервал = установить интервал (() => {
// Обновляем позицию коробки, добавляя 10 к текущей позиции
setBoxPosition(prevPosition => предыдущая + 10);
}, 1000);

// Возвращаем функцию очистки, чтобы очистить интервал, когда компонент
// размонтирует
возвращаться() => clearInterval (интервал);
}, []);

// Устанавливаем положение блока с помощью переменной состояния во встроенном стиле
константа боксСтиль = {
трансформировать: [{ перевестиY: boxPosition }]
};

возвращаться (


</View>
);
};

константа стили = Таблица стилей.create({
контейнер: {
гибкий: 1,
выравнивание элементов: 'центр',
выравнивание содержимого: 'центр',
},
коробка: {
ширина: 100,
высота: 100,
фоновый цвет: 'синий',
},
});

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

Этот код отображает синее поле, которое каждую секунду перемещается вниз. Анимация работает с помощью использованиеЭффект ловушка для создания таймера, который обновляет коробкаПозиция переменная состояния каждую 1 секунду.

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

Это несколько анимационных библиотек, таких как Анимированный библиотека, реактивный родной реанимированный, и реагировать родной анимационный для создания эффективных анимаций в React Native. Каждая из этих анимационных библиотек устраняет проблему асинхронных обновлений состояния и идеально подходит.

Анимированный API React Native

Animated — это API, который предоставляет React Native. Вы можете использовать его для создания плавных анимаций, которые реагируют на действия пользователя или изменения состояния.

Animated API позволяет создавать анимированные значения, которые можно интерполировать и сопоставлять с различными свойствами стиля ваших компонентов. Затем вы можете обновлять эти значения с течением времени, используя различные методы анимации. Затем стили ваших компонентов будут обновляться по мере изменения анимированных значений, что приводит к плавной анимации.

Animated очень хорошо работает с системой компоновки React Native. Из-за этого ваши анимации будут должным образом интегрированы с остальной частью вашего пользовательского интерфейса для еще лучшего вида.

Чтобы начать использовать Animated в вашем проекте React Native, вам необходимо импортировать Анимированный модуль от ‘реагировать родной’ в ваш код:

Импортировать {Анимированный} от«реагирующий нативный»;

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

константа анимированное значение = новый Анимированный. Ценить(0);

Анимированный. Ценить — это класс в React Native Animated API, представляющий изменяемое значение. Вы можете инициализировать его начальным значением, а затем обновлять его с течением времени, используя различные методы анимации, предоставляемые Animated API, например .время(), .весна(), и .разлагаться(), указав продолжительность анимации, функцию плавности и другие параметры.

Анимированное значение похоже на значение состояния в компоненте React.

Вы можете инициализировать Анимированный. Ценить со значением начального состояния компонента, а затем обновлять его с течением времени с помощью setState метод.

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

Вы можете создать Анимированный. Ценить и инициализируйте его начальным значением состояния считать:

константа Приложение = () => {
константа [счетчик, setCount] = useState(0);
константа анимированное значение = новый Анимированный. Стоимость (количество);
};

Затем всякий раз, когда считать обновления значения состояния, вы можете обновить анимированное значение слишком:

константа ручкакнопкаклик = () => {
setCounter (количество + 1);

Animated.timing(animatedValue, {
toValue: количество + 1,
продолжительность: 500,
использовать нативдрайвер: истинный
}).начинать();
};

Этот пример обновляет анимированное значение используя Анимированный.время() каждый раз, когда пользователь нажимает кнопку. анимированное значение управляет анимацией и меняет значение в течение 500 миллисекунд.

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

Теперь вы понимаете, как манипулировать анимированным значением, вы можете перейти к интерполяции анимированного значения и сопоставить его со свойством стиля вашего компонента, используя Анимированный.interpolate() метод.

Например:

константа непрозрачность = анимированное значение.interpolate({
диапазон ввода: [0, 1],
выходной диапазон: [0, 1]
});

возвращаться (

{/* содержимое вашего компонента */}
</View>
);

Это создаст анимацию, которая постепенно исчезает в Вид компонента, когда анимированное значение изменяется с 0 на 1.

Понимание типов анимации

Понимание типов анимации и того, как они работают, важно для создания хороших анимаций.

Используя использованиеNativeDriver вариант с анимацией повышает производительность. Этот параметр позволяет разгрузить анимацию в собственный поток пользовательского интерфейса. Это может значительно повысить производительность за счет уменьшения объема необходимой обработки JavaScript.

Однако не все типы анимации поддерживают собственный драйвер. Попытка использовать собственный драйвер с анимацией, включающей изменение цвета или макета, может привести к неожиданному поведению.

Кроме того, анимация, включающая сложные последовательности, может вызвать серьезные проблемы с производительностью на устройствах с ограниченной вычислительной мощностью или памятью. Эти недостатки производительности также могут быть заметны, если в вашем проекте React Native используется более ранняя версия, которая не поддержка двигателя Hermes.

Понимание сильных сторон и ограничений различных типов анимации может помочь вам выбрать правильный подход для вашего случая использования.

Освойтесь с React Native Animations

Анимации — это мощный инструмент для создания привлекательных и динамичных пользовательских интерфейсов в приложениях React Native. Animated API предоставляет гибкий и эффективный способ создания как простых, так и сложных последовательностей анимаций.

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