React Spring i praksis: useSpring-hook
Animér værdier med useSpring — konfigurér spænding, friktion og masse for naturlige bevægelser.
React Spring i praksis: useSpring-hook er en gratis React Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i React Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. React Academy-kurset indeholder 4 lektioner i alt.
Fjederfysik kontra varighedsbaseret animation
Traditionelle CSS-animationer bruger en fast varighed: animationen afspilles i X millisekunder og stopper derefter. react-spring animerer værdier ved hjælp af fjederfysik — animationen styres af tension (fjederens stivhed) og friction (hvor meget fjederen modstår bevægelse). Det giver en naturligt aftagende bevægelse, der føles organisk.
Grundlæggende brug af useSpring
Hooket useSpring({ from, to }) definerer en animeret værdi. Du angiver startværdierne i from og mål værdierne i to. useSpring returnerer et springs-objekt, hvor hver nøgle er en SpringValue — en animeret version af den tilsvarende numeriske værdi eller farveværdi.
Springkonfiguration: tension og friction
Indstillingen config styrer fjederens adfærd. tension (standardværdien er 170) styrer stivheden — højere værdier giver et hurtigere snap. friction (standardværdien er 26) styrer dæmpningen — lavere værdier giver mere hoppende bevægelser. mass (standardværdien er 1) tilføjer træghed. Tilsammen definerer disse tre værdier animationens karakter.
Forudindstillede konfigurationer
react-spring leveres med forudindstillede konfigurationer, som du kan bruge uden selv at finjustere dem: config.default er afbalanceret og velegnet til generelle formål, config.gentle er langsom og jævn, config.wobbly hopper med lav friktion, config.stiff er hurtig og kontant, og config.slow er meget gradvis. Importér dem fra react-spring.
SpringValue-objekter
De værdier, som useSpring returnerer, er SpringValue-objekter, ikke almindelige tal. Du kan ikke gengive dem direkte i JSX eller bruge dem i almindelige style-objekter. De skal anvendes på animated.*-komponenter, som ved, hvordan de abonnerer på opdateringer fra spring-animationen og effektivt anvender dem på DOM'en.
immediate: Spring animationen over
Når du sender immediate: true til useSpring, springer værdierne øjeblikkeligt til deres mål og omgår spring-animationen. Det er nyttigt ved den første rendering, når du har aktiveret "reduceret bevægelse" i operativsystemets indstillinger, eller når du programmatisk skal nulstille en position uden synlig bevægelse.
Vend en spring-animation
Du kan vende en spring-animation ved at skifte om på, hvilke værdier der står i from og to. Et almindeligt mønster er at gemme en boolesk toggle-tilstand og beregne from/to ud fra den: når toggle er false, animeres der fra 0 til 1; når den er true, animeres der fra 1 til 0. react-spring skifter jævnt mellem tilstandene.
Imperativ API: api.start()
useSpring kan returnere et array med to elementer: const [springs, api] = useSpring(() => ({ from: { x: 0 } })). Objektet api giver dig programmatisk kontrol. Kald api.start({ x: 100 }) for at animere til en ny værdi, api.stop() for at fastfryse animationen og api.set({ x: 50 }) for at springe direkte til værdien uden animation.
Hvornår skal du bruge deklarativ versus imperativ form
Brug den deklarative form useSpring({ from, to }), når animationen afhænger af React-tilstand, der ændres på normal vis. Brug den imperative form med api.start(), når du skal udløse animationer fra hændelseshandlere, gestus eller asynkrone operationer uden at få React til at gengive komponenten igen.
Hændelses-callbacks for springs
useSpring accepterer callbacks for livscyklussen i sin konfiguration. onStart udløses, når spring-animationen begynder. onChange udløses ved hvert billede med den aktuelle værdi – det er nyttigt til sideeffekter, der følger positionen. onRest udløses, når springet falder til ro ved sin endelige værdi, hvilket signalerer, at animationen er fuldført.
Kør spring-animationer igen ved ændring af tilstand
I den deklarative form kører useSpring automatisk animationen igen, når de værdier, der sendes til den, ændres. For eksempel animerer useSpring({ opacity: isVisible ? 1 : 0 }) opaciteten, hver gang isVisible ændres. Det er den enkleste måde at knytte spring-animationer til komponentens tilstand.
Parametre for spring-fysik
Hvad styrer tension og friction i react-springs konfiguration?
Opsummering af lektionen: Grundlæggende om useSpring
react-spring animerer ved hjælp af fysik: tension (stivhed), friction (dæmpning) og mass bestemmer bevægelsen. useSpring({ from, to }) returnerer SpringValue-objekter, som anvendes på animated.*-komponenter. Forudindstillede konfigurationer (gentle, wobbly, stiff, slow) dækker almindelige scenarier. Den imperative API [springs, api] giver programmatisk kontrol via api.start(), api.stop() og api.set(). onRest udløses, når animationen falder til ro.
Lær React med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 88
- Lektioner
- 324
Ofte stillede spørgsmål
Er lektionen “React Spring i praksis: useSpring-hook” gratis?
Ja — hele teksten til “React Spring i praksis: useSpring-hook” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af React Academy-kurset, skal du opgradere til CoddyKit PRO. React Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “React Spring i praksis: useSpring-hook”?
Animér værdier med useSpring — konfigurér spænding, friktion og masse for naturlige bevægelser. Du øver dig i React Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på React Academy?
Der kræves ingen tidligere erfaring. React Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “React Spring i praksis: useSpring-hook”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne React Academy-lektion?
Ja. Alle React Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- React Spring i praksis: useSpring-hook
- Animerede komponenter og style-interpolation
- useTrail og useChain til sekvenser
- Gestusstyrede animationer med use-gesture