"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > React.js ऐप में ट्रांज़िशन एनिमेशन देखें

React.js ऐप में ट्रांज़िशन एनिमेशन देखें

2024-08-27 को प्रकाशित
ब्राउज़ करें:741

View Transition Animation in React.js App

किसी दिन मैं साइट के लिए सूची एनीमेशन से त्वरित रूप से हटाए जाने वाले आइटम बनाना चाहता हूं। इस बार रिएक्ट ट्रांज़िशन ग्रुप को छोड़ें, नया व्यू ट्रांज़िशन आज़माएं, समय बचाएं।

जब कुछ कोड ट्रिक करते हैं तो लॉट कोड क्यों लिखें।

केवल ट्रांजिशन एपीआई क्रोम देखें, लेकिन मुझे कोई परवाह नहीं।

क्रूक्स document.startViewTransition है।

लेकिन राज्य से पहले, राज्य के बाद DOM स्थापित करने की आवश्यकता है, लेकिन React.js अनुमति नहीं देता है।

React.js प्रतिक्रियाशील। समकालिक नहीं. document.startViewTransition को सिंक्रोनस की आवश्यकता है।

Google से सीखें:

import { flushSync } from "react-dom";

flushSync(() => setState(...));

मैं हुक लिखता हूं:

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;

यदि useQuery का उपयोग करें

const { data: newMsgs } = useQuery({
  queryKey: ["msgs"],
  queryFn: msgs.all(25)
});

const msgs = useViewTransition(newMsgs);

return (
  
    {msgs?.map(item => (
  1. {item.title}
  2. ))}
);

अब जब क्वेरी अपडेट का उपयोग करें, तो हुक कॉल document.startViewTransition फिर setState.

वैश्विक सीएसएस की आवश्यकता है

मैं ग्लोबल.सीएसएस जोड़ता हूं:

@supports (view-transition-name: none) {
  ::view-transition-group(root) {
    animation-duration: 0s;
  }
  ::view-transition-group(.mymsg) {
    animation-duration: 0.4s;
  }
}

यह क्रोम को बताता है: पूरे पृष्ठ को परिवर्तित न करें, केवल सूची आइटम को परिवर्तित करें।

अब संदेश सूची एनीमेशन काम करता है। बहुत अच्छा।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/ctnr/using-view-transitions-in-reactjs-1064?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3