
Neulich möchte ich eine schnelle Animation zum Entfernen von Elementen aus der Liste für die Website erstellen. Überspringen Sie dieses Mal die React Transition Group, probieren Sie den neuen View Transition aus und sparen Sie Zeit.
Warum Loscode schreiben, wenn nur wenige Codes funktionieren.
Übergangs-API nur für Chrome anzeigen, aber mir ist das egal.
Der Kernpunkt ist document.startViewTransition.
Aber es muss ein DOM vor dem Status und nach dem Status eingerichtet werden, aber React.js erlaubt das nicht.
React.js reaktiv. Nicht synchron. document.startViewTransition muss synchron sein.
Fragen Sie Google, lernen Sie:
import { flushSync } from "react-dom"; flushSync(() => setState(...));
Ich schreibe Hook:
import { useState } from "react"; import { flushSync } from "react-dom"; export const useViewTransition = typeof document !== "undefined" && "startViewTransition" in document ? (newValue: T) => { const [value, setValue] = useState(newValue); if (value !== newValue) { document.startViewTransition(() => { flushSync(() => { setValue(newValue); }); }); } return value; } : (value: T) => value;
const { data: newMsgs } = useQuery({ queryKey: ["msgs"], queryFn: msgs.all(25) }); const msgs = useViewTransition(newMsgs); return ( {msgs?.map(item => ( - {item.title}
))}
);
Wenn Sie nun die Abfrage aktualisieren, rufen Sie document.startViewTransition und dann setState.
aufIch füge global.css hinzu:
@supports (view-transition-name: none) { ::view-transition-group(root) { animation-duration: 0s; } ::view-transition-group(.mymsg) { animation-duration: 0.4s; } }
Dies teilt Chrome mit: Übertragen Sie nicht die gesamte Seite, sondern nur die Elemente der Liste.
Jetzt funktioniert die Animation der Nachrichtenliste. Sehr schön.
Das obige ist der detaillierte Inhalt vonÜbergangsanimation in der React.js-App anzeigen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
ppt zu Wort
Welche Plattform ist besser für den Handel mit virtuellen Währungen?
504 Gateway-Zeitüberschreitung
Ist es legal, Bitcoin auf OKEX zu kaufen und zu verkaufen?
So kündigen Sie die automatische Verlängerung der Taobao Money Saving Card
Was bedeutet es, wenn eine Nachricht gesendet, aber von der anderen Partei abgelehnt wurde?
Einführung in Architekturzeichnungssoftware
Verbindung zurücksetzen Lösung