आज के वेब एप्लिकेशन में, कई टैब या विंडो में जानकारी अपडेट रखने से उपयोगकर्ता अनुभव में काफी वृद्धि हो सकती है। उदाहरण के लिए, यदि कोई उपयोगकर्ता एक टैब में लॉग आउट करता है, तो आप चाहते हैं कि वह कार्रवाई अन्य सभी टैब में दिखाई दे। ब्रॉडकास्ट चैनल एपीआई एक ही मूल के विभिन्न ब्राउज़िंग संदर्भों के बीच संचार की अनुमति देकर इसे आसान बनाता है। यह आलेख आपको रिएक्ट एप्लिकेशन में इस एपीआई का उपयोग करने के तरीके के बारे में मार्गदर्शन करेगा।
ब्रॉडकास्ट चैनल एपीआई एक ही वेबसाइट के विभिन्न टैब, विंडो या आईफ्रेम के बीच संचार को सक्षम करने की एक सरल विधि है। यह आपको एक ही चैनल पर सुनने वाले अन्य सभी संदर्भों में संदेश प्रसारित करने की अनुमति देता है, जो इसे वास्तविक समय अपडेट और सिंक्रनाइज़ेशन के लिए आदर्श बनाता है।
• वास्तविक समय अपडेट: विभिन्न टैब में उपयोगकर्ता सत्रों की तरह डेटा सिंक करें।
• एकीकरण में आसानी: अपने मौजूदा रिएक्ट ऐप में जोड़ना आसान।
• कोई अतिरिक्त लाइब्रेरी नहीं: अतिरिक्त निर्भरता के बिना आधुनिक ब्राउज़र में मूल रूप से कार्य करता है।
आइए संचार को प्रबंधित करने के लिए एक कस्टम हुक बनाकर रिएक्ट एप्लिकेशन में ब्रॉडकास्ट चैनल एपीआई का उपयोग कैसे करें, इसके बारे में जानें।
सबसे पहले, ब्रॉडकास्ट चैनल लॉजिक को एनकैप्सुलेट करने के लिए यूज़ब्रॉडकास्टचैनल नामक एक कस्टम हुक बनाएं।
import { useEffect, useState } from 'react'; const useBroadcastChannel = (channelName) => { const [message, setMessage] = useState(null); const channel = new BroadcastChannel(channelName); useEffect(() => { const handleMessage = (event) => { setMessage(event.data); }; channel.onmessage = handleMessage; // Clean up the channel when the component unmounts return () => { channel.close(); }; }, [channel]); const sendMessage = (msg) => { channel.postMessage(msg); }; return { message, sendMessage }; }; export default useBroadcastChannel;
यह हुक एक नया ब्रॉडकास्ट चैनल बनाता है, आने वाले संदेशों को सुनता है, और संदेश भेजने के लिए एक फ़ंक्शन प्रदान करता है।
आइए विभिन्न टैब में लॉगिन सत्र प्रबंधित करने के लिए रिएक्ट घटक में हमारे कस्टम हुक का उपयोग करें।
import React, { useEffect } from 'react'; import useBroadcastChannel from './useBroadcastChannel'; const AuthManager = () => { const { message, sendMessage } = useBroadcastChannel('auth_channel'); const handleLogin = () => { // Notify all tabs that the user has logged in sendMessage({ type: 'login', user: 'JohnDoe' }); }; const handleLogout = () => { // Notify all tabs that the user has logged out sendMessage({ type: 'logout' }); }; useEffect(() => { if (message) { if (message.type === 'logout') { alert('You have been logged out in another tab!'); } } }, [message]); return (); }; export default AuthManager;Authentication Manager
यह ऑथमैनेजर घटक टैब में उपयोगकर्ता प्रमाणीकरण स्थिति को संभालने के लिए यूज़ब्रॉडकास्टचैनल हुक का उपयोग करता है। जब कोई उपयोगकर्ता लॉग इन या आउट करता है, तो auth_channel चैनल पर अन्य सभी टैब पर एक संदेश भेजा जाता है। यदि किसी टैब में लॉगआउट संदेश प्राप्त होता है, तो यह उपयोगकर्ता को सूचित करने के लिए अलर्ट ट्रिगर करता है।
ब्रॉडकास्ट चैनल एपीआई आपके वेब एप्लिकेशन में कई टैब या विंडो में डेटा को सिंक्रनाइज़ करने का एक सीधा तरीका प्रदान करता है। कस्टम रिएक्ट हुक का उपयोग करके, आप आसानी से रीयल-टाइम मैसेजिंग प्रबंधित कर सकते हैं और उपयोगकर्ता अनुभव में सुधार कर सकते हैं। चाहे आप लॉगिन स्थिति संभाल रहे हों या अन्य प्रकार के डेटा को सिंक कर रहे हों, ब्रॉडकास्ट चैनल एपीआई क्रॉस-टैब संचार को सरल बनाता है।
• ब्रॉडकास्ट चैनल एपीआई पर एमडीएन वेब डॉक्स
लिंक्डइन
ट्विटर
गिटहब
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3