TransitionGroup listaanimaatioihin
v-for-listojen animointi, siirtymät liikkeelle, viivästetyt porrastetut animaatiot.
TransitionGroup listaanimaatioihin on ilmainen Vue Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Vue Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Vue Academy-kurssilla on yhteensä 4 oppituntia.
Listojen animointi
<Transition> käsittelee yhtä elementtiä. v-for-direktiivillä renderöityihin listoihin käytetään <TransitionGroup>-komponenttia, joka animoi alkioiden lisäämisen, poistamisen ja järjestyksen muuttamisen.
tag-prop
Toisin kuin Transition, TransitionGroup voi renderöidä todellisen kääre-elementin. Välittäkää sille tag="ul" (tai mikä tahansa muu tagi), jolloin se tuottaa kyseisen elementin lista-alkioiden ympärille.
<TransitionGroup name="list" tag="ul">
<li v-for="item in items" :key="item.id">
{{ item.text }}
</li>
</TransitionGroup>Jokainen alkio tarvitsee key-arvon
Jokaisella alkiolla on oltava yksilöllinen :key. Vue käyttää sitä seuratakseen, mitkä alkiot siirtyvät, tulevat näkyviin tai poistuvat. Älkää koskaan käyttäkö taulukon indeksiä animoitujen listojen key-arvona.
<li v-for="item in items" :key="item.id">{{ item.text }}</li>Enter- ja leave-luokat
TransitionGroup käyttää samoja enter- ja leave-luokkia kuin Transition. Määrittäkää ne alkioiden yksittäistä ilmestymistä ja poistumista varten.
.list-enter-from,
.list-leave-to {
opacity: 0;
transform: translateX(30px);
}
.list-enter-active,
.list-leave-active {
transition: all 0.3s ease;
}Erityinen move-luokka
Keskeinen ominaisuus on -move-luokka (esimerkiksi list-move). Kun alkiot järjestetään uudelleen, Vue animoi jokaisen niistä sujuvasti uuteen sijaintiin transform-siirtymän avulla.
.list-move {
transition: transform 0.4s ease;
}FLIP-tekniikka
-move-luokan taustalla on FLIP: First-vaiheessa tallennetaan ensin vanha sijainti, Last-vaiheessa luetaan uusi sijainti, Invert-vaiheessa käytetään transformia, jotta alkio näyttää pysyvän paikallaan, ja Play-vaiheessa transform poistetaan. Vue tekee tämän automaattisesti.
/* Vue computes: translate(oldX - newX) then animates to 0 */Poistuvat alkiot tarvitsevat absoluuttisen asemoinnin
Poistettava elementti vie edelleen tilaa, mikä voi rikkoa sen naapureiden move-animaation. Määrittäkää position: absolute leave-active-luokalle, jotta poistuvat alkiot otetaan pois normaalista asettelusta.
.list-leave-active {
position: absolute;
}Esimerkki järjestettävästä listasta
Kun yhdistätte enter-, leave- ja move-luokat, Vue animoi lisäämisen, poistamisen ja järjestyksen sekoittamisen samanaikaisesti.
function shuffle() {
items.value = items.value
.slice()
.sort(() => Math.random() - 0.5);
}Porrastus transitionDelay-arvolla
Jos haluatte alkioiden ilmestyvän yksi kerrallaan, sitokaa inline-transition-delay alkion indeksin perusteella. Jokainen alkio odottaa hieman edellistä pidempään.
<li
v-for="(item, i) in items"
:key="item.id"
:style="{ transitionDelay: i * 50 + 'ms' }"
>
{{ item.text }}
</li>Porrastus JavaScript-hookeilla
Dataohjattuun porrastukseen voitte käyttää myös JavaScript-hookeja ja data-index-attribuuttia, jolloin kunkin onEnter-kutsua viivästetään elementin indeksin perusteella.
function onEnter(el, done) {
const delay = el.dataset.index * 50;
setTimeout(() => {
el.style.opacity = 1;
done();
}, delay);
}Suorituskykyä koskevia huomioita
FLIP animoi transform-ominaisuutta, joka sopii hyvin GPU:lle. Pitäkää listat kohtuullisen kokoisina ja suosikaa sujuvaa 60 fps:n liikettä varten transform- ja opacity-ominaisuuksia asettelua muuttavien ominaisuuksien, kuten widthin tai topin, sijaan.
Pikatarkistus
Mitä list-move-luokka mahdollistaa?
Kertaus
Opitte käyttämään <TransitionGroup>-komponenttia listoille: renderöimään kääreen tag-propilla, antamaan jokaiselle alkiolle yksilöllisen :key-arvon, käyttämään enter- ja leave-luokkia sekä -move-luokkaa FLIP-pohjaisiin järjestyksenmuutosanimaatioihin, asemoimaan poistuvat alkiot absoluuttisesti ja luomaan porrastustehosteita indeksipohjaisella transitionDelay-arvolla.
Opi HTML tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 42
- Oppitunnit
- 156
Usein kysytyt kysymykset
Onko oppitunti ”TransitionGroup listaanimaatioihin” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Vue Academy-oppimispolun 3 oppituntia, myös oppitunnin “TransitionGroup listaanimaatioihin”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Vue Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”TransitionGroup listaanimaatioihin”?
v-for-listojen animointi, siirtymät liikkeelle, viivästetyt porrastetut animaatiot. Harjoittelet Vue Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Vue Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Vue Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”TransitionGroup listaanimaatioihin”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Vue Academy-oppitunnilla?
Kyllä. Jokainen Vue Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Transition-komponentti
- CSS-siirtymät ja animaatiot
- JavaScript-siirtymien hookit
- TransitionGroup listaanimaatioihin