Mozgás React DOM-hoz · a React Native Animated API-ja
Írja meg egyszer a mozgást. Simán fut, és soha nem törik el.
Az Animated a React Native Animatedet hozza el a webre. Egyetlen érték tetszőleges számú elemet vezérel képkockánkénti React-renderelés nélkül, a támogatott mozgást maga a böngésző játssza le, és minden megszakítás onnan folytatódik, ami a képernyőn van.
npm install @kkwaenggwari/animatedEgyetlen órajel-érték vezérli mind a 64 alakzat hullámait. Mozgassa a mutatót a színpad felett.
Erre a kiadásra mérve
Az 1.0.0 builddel mérve, fej nélküli Chrome-ban, asztali PC-n. A számok eszközfüggők. Hogyan mértünk
- 0.00msKépkockánkénti JavaScript 400 elem mozgása közben
Az Animated elemeken a véges transform- és opacity-mozgást a böngésző játssza le. Az oldal saját képkocka-callbackjei semmilyen munkát nem végeznek.
- 0.13msKépkockánkénti JavaScript, amikor egy érték 10 000 elemet vezérel
Az érték egyetlen CSS-változót ír; minden elem CSS-ben ebből számítja a saját stílusát.
- 0React-renderelések mozgás közben
Az értékek soha nem haladnak át a React-állapoton. A komponensek akkor renderelnek, ha a props-uk változik, nem akkor, ha a képkocka.
01 · Egyszerű
Az API, amelyet már ismer, sima React style-on
A timing, spring, interpolate, loop és Animated.event megtartja a React Native-beli nevét és konfigurációját. Az érték közvetlenül a sima style propba kerül, így az első mozgás előtt nem kell különleges komponenst megtanulni.
- Hozza át a React Native-kódot úgy, hogy az
Animated.ViewnevetAnimated.div-re cseréli. - Egyetlen érték egyszerre mozgathat egy csíkot, egy számlapot és egy kártyasort, mindegyiket a saját tartományával.
- A
useAnimatedbirtokolja a receptet: csatoláskor indul, függőségváltozáskor újraindul, és leválasztáskor kitakarít.
A példa előkészítése…
Ugyanazok a hívások, mint React Native-ben
// React Native
<Animated.View style={{ transform: [{ rotate }] }} />
// React DOM with @kkwaenggwari/animated — the rest is identical
<Animated.div style={{ transform: [{ rotate }] }} />
const spin = useAnimatedValue(0);
const rotate = spin.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg'] });
Animated.loop(
Animated.timing(spin, { toValue: 1, duration: 900, easing: Easing.linear, useNativeDriver: true }),
).start();02 · Gyors
Nincs React-renderelés minden képkockában
Egy hook értéke CSS-változó. A lineáris interpolációk és az aritmetika ennek a változónak pontos calc() kifejezéseivé válnak, így minden képkocka egyetlen írás, a többit a böngésző számolja. Az Animated.<tag> elemeken a véges transform- és opacity-mozgást a böngésző képkocka-callbackek nélkül játssza le.
- Módosítsa a pontok számát: a számláló mutatja, hogy a React változásonként egyszer renderelt, képkockánként soha.
- A
scopeaz értéket egyszer, a tárolóelemre írja minden elem helyett. - Az
inspect(element)megmondja, melyik tulajdonság melyik utat használja, és miért.
A példa előkészítése…
03 · Stabil
Szakítsa meg bárhol. Folytatja.
Az új cél onnan indul, ahol az elem a képernyőn van, a rugó pedig a sebességet is megtartja, így a félúton történő visszafordulás simán ível, ahelyett hogy előbb megállna. A hookban deklarált vezérlők cserekor és leválasztáskor leállnak és felszabadulnak, a szerveren renderelt markup pedig hidratálás után is tovább animálódik.
- Kattintson kétszer gyorsan:
springesetén a pálya elhajlik,timingesetén a pozíció megmarad, de új görbe indul. - A leállítás ott hagyja az értéket, ahol van; semmi nem ugrik a végállapotba.
- Leválasztás, útvonalváltás vagy rejtett fül után nem marad elfelejtett képkockaciklus.
A példa előkészítése…
- Mágneses dokkAz ikonok megnőnek, amikor elhalad felettük a mutató, félretolják a szomszédaikat, és megnyugszanak, amikor a mutató távozik.
moveInputfollowuseAnimatedCSSmultiply - Lapozható pakliHúzza a legfelső kártyát. A küszöbön túl elrepül; különben rugóval visszatér.
dragInputuseAnimatedListenerAnimated.div - Megosztott galériaEgy csempe részletnézetté nő, majd visszazsugorodik a rácsba.
Animated.SceneAnimated.Keepmove
Animatedre építve
Kész komponensre van szüksége? Animated Chorus.
Pörgő számok, vándorló kártyakiemelések, haladásjelzők, sheetek és animált listák, amelyek közvetlenül beilleszthetők React és React Native alá. Ez a három éppen most fut ezen az oldalon.
Az Animated Chorus megtekintéseKezdés három perc alatt
Telepítse a csomagot, mozgasson meg egy első értéket, majd válasszon útmutatót az előtte álló feladathoz.
npm install @kkwaenggwari/animated