] इस ब्लॉग में, हम UseFormStatus, UseactionState, और UseOptimistic - तीन हुक का पता लगाएंगे जो हमारे रिएक्ट एप्लिकेशन को अधिक संवेदनशील और उपयोगकर्ता के अनुकूल बनाते हैं।
UseFormStatus: बढ़ाया फॉर्म हैंडलिंग
उदाहरण 1: बुनियादी फॉर्म लोडिंग राज्य
] नया UseFormStatus हुक स्वचालित रूप से इसे संभालता है, बॉयलरप्लेट कोड को कम करता है।
function SubmitButton() { const { pending } = useFormStatus(); return ( ); } function SignupForm() { return (); }
उदाहरण 3: सत्यापन की स्थिति
{त्रुटि}
))}function FormStatus() { const { pending, data, method } = useFormStatus(); return (); }{pending && Submitting via {method}...} {!pending && data && Last submission: {new Date().toLocaleString()}}); } function ContactForm() { return (
function ValidationStatus() { const { pending, validationErrors } = useFormStatus(); return (); } फ़ंक्शन UploadProgress () { const {लंबित, प्रगति} = useFormStatus (); वापस करना ({validationErrors?.map((error, index) => (); } function RegistrationForm() { return ({error}
))}
उदाहरण 1: बुनियादी एक्शन स्टेट); } उदाहरण 4: एक्शन कतारफ़ंक्शन सबमिशनस्टैटस () { const state = useactionstate (); वापस करना (
{state.status === 'सफलता' &&); } फ़ंक्शन कमेंटफॉर्म () { वापस करना ( { सबमिटकॉममेंट (फॉर्मडाटा) का इंतजार; }}> रूप> ); }सबमिशन सफल!
} {state.status === 'त्रुटि' &&त्रुटि: {state.error.message}
}उदाहरण 2: एक्शन हिस्ट्री
फ़ंक्शन एक्शनहिस्टोरी () { const state = useactionstate (); वापस करना (
); }हाल के कार्य
{state.history.map ((क्रिया, सूचकांक) => (
- {Action.Type} - {Action.Timestamp} {action.status === 'त्रुटि' && `(विफल: $ {action.error.message})`}
))}उदाहरण 3: रिट्री मैकेनिज्म
] const state = useactionstate (); वापस करना ({state.status === 'त्रुटि' && ( state.retry ()} अक्षम = {state.retrying} > {State.retrying? 'रिट्रीिंग ...': 'रिट्री'} बटन> )}); }function ValidationStatus() { const { pending, validationErrors } = useFormStatus(); return ({validationErrors?.map((error, index) => (); } function RegistrationForm() { return ({error}
))}
function ValidationStatus() { const { pending, validationErrors } = useFormStatus(); return (); } उदाहरण 5: एक्शन सांख्यिकी{validationErrors?.map((error, index) => (); } function RegistrationForm() { return ({error}
))}
सफलता दर: {state.stats.successrate}%
औसत अवधि: {state.stats.avgduration} ms
कुल कार्रवाई: {state.stats.total}
function ValidationStatus() { const { pending, validationErrors } = useFormStatus(); return (); } उपयोग करें: स्मूथ यूआई अपडेट{validationErrors?.map((error, index) => (); } function RegistrationForm() { return ({error}
))}
function ValidationStatus() { const { pending, validationErrors } = useFormStatus(); return (); } फ़ंक्शन टोडोलिस्ट () { const [todos, सेटोडोस] = usestate ([]); const [ऑप्टिमिस्टिक्टोडोस, addoptimistictodo] = useOptimistic ( टोडोस, (राज्य, न्यूटोडो) => [... राज्य, न्यूटोडो] ); async फ़ंक्शन addtodo (formData) { const newtodo = { id: date.now (), पाठ: formData.get ('todo'), पूरा: गलत }; AddOptimistictodo (Newtodo); सेवेटोडो (न्यूटोडो) का इंतजार; } वापस करना ({validationErrors?.map((error, index) => (); } function RegistrationForm() { return ({error}
))}
function ValidationStatus() { const { pending, validationErrors } = useFormStatus(); return (); } फ़ंक्शन जैसे const [पसंद, setlikes] = usestate (initionlikes); const [आशावादी, addoptimisticly] = useOptimistic ( पसंद है, (राज्य) => राज्य 1 ); async फ़ंक्शन हैंडलिक () { addoptimisticly (); लाइकपोस्ट (पोस्टिड) का इंतजार; } वापस करना ( {आशावादीता} पसंद करता है बटन> ); }{validationErrors?.map((error, index) => (); } function RegistrationForm() { return ({error}
))}
] const [टिप्पणियाँ, setComments] = usestate ([]); const [आशावादी, addOptimisticComment] = useOptimistic ( टिप्पणियाँ, (राज्य, नवागम) => [... राज्य, नवाग्मन] ); async फ़ंक्शन सबमिटकॉममेंट (formData) { const टिप्पणी = { id: date.now (), पाठ: formData.get ('टिप्पणी'), लंबित: सच }; AddOptimisticComment (टिप्पणी); Savecomment (पोस्टिड, टिप्पणी) का इंतजार; } वापस करना (
function ValidationStatus() { const { pending, validationErrors } = useFormStatus(); return (); } उदाहरण 5: आशावादी उपयोगकर्ता सेटिंग्स{validationErrors?.map((error, index) => (); } function RegistrationForm() { return ({error}
))}
function LikeButton({ postId, initialLikes }) { const [likes, setLikes] = useState(initialLikes); const [optimisticLikes, addOptimisticLike] = useOptimistic( likes, (state) => state 1 ); async function handleLike() { addOptimisticLike(); await likePost(postId); } return ( ); }
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3