Как реагирует на рендеринг Spring изначально?

В response spring есть функция animated, которая позволяет изменять компоненты в исходном виде без необходимости повторного рендеринга компонента. Я обнаружил, что у анимированных компонентов есть несколько методов, которые похожи на реакцию на анимированные компоненты нативного кода . Есть ли какая-то связь между ними, или такие концепции, как .interpolate(), очень распространены для анимационных библиотек?


person cubefox    schedule 12.03.2019    source источник


Ответы (1)


Изначально библиотека была ответвлением Animated и до сих пор имеет большое внутреннее сходство. У Animated Кристофера Чедо есть репо, посвященное Интернету: https://github.com/animatedjs/animated К сожалению, он больше не поддерживается.

Это работает так: компоненты обертываются через createAnimatedComponent (который отображается как «анимированный»): https://github.com/react-spring/react-spring/blob/master/src/animated/createAnimatedComponent.tsx

Этот компонент более высокого порядка перехватывает стили и атрибуты (которые не являются исходными значениями, а самообновляющимися классами). Он вызывает applyAnimatedValues ​​для записи в цель вне React. Каждая цель (дом, родная, конва, тройка и т. Д.) Должна ее заполнить. Например, вот как dom применяет эти реквизиты: https://github.com/react-spring/react-spring/blob/master/src/targets/web/globals.ts#L82-L127

Надеюсь, это поможет!

person hpalu    schedule 12.03.2019
comment
Благодарность! Вы знаете, есть ли где-нибудь об этом документы? Я не мог ничего найти конкретно о анимации ... - person cubefox; 12.03.2019
comment
Только основы: react-spring.io/docs/hooks/basics Это не так уж и много. Это позволяет помещать самообновляющиеся значения в ваш компонент через HOC, что было бы невозможно с простыми стилями и атрибутами. Hocs - довольно распространенный паттерн в React, он просто переходит между стилями. - person hpalu; 13.03.2019