त्वरित प्रतिक्रिया (क्यूआर) कोड जनरेटर बनाने के पीछे का विचार छवियों से पाठ में डेटा का अनुवाद करना है। एक क्यूआर कोड केवल टेक्स्ट के रूप में छवि डेटा का प्रतिनिधित्व है, और इसमें रेस्तरां मेनू और कॉन्सर्ट टिकट से ऑनलाइन कैलेंडर आमंत्रण, भुगतान और सूची में बहुत से उपयोगी अनुप्रयोग हैं।
इस ट्यूटोरियल में, आप सीखेंगे कि जावास्क्रिप्ट लाइब्रेरी, रिएक्ट का उपयोग करके एक क्यूआर कोड कैसे बनाया जाता है। रिएक्ट का उपयोग करने का लाभ यह है कि यह फ्रंटएंड अनुप्रयोगों के निर्माण को आसान बनाता है क्योंकि यह डेवलपर्स को घटकों के पुन: उपयोग के तरीके प्रदान करता है।
इस ट्यूटोरियल का अनुसरण करने के लिए, निम्नलिखित को कवर किया जाएगा:
आवश्यक शर्तें
इस ट्यूटोरियल को पूरा करने के लिए, आपको निम्नलिखित की आवश्यकता है:
शुरू करना
कोड की एक पंक्ति लिखने से पहले, अपना टर्मिनल खोलें और निम्न कमांड चलाएँ:
npx create-react-app qrcode-generator
ऊपर दिया गया कमांड फाइलों को स्कैफोल्ड करता है और रिएक्ट ऐप बनाने के लिए आवश्यक कुछ पैकेज इंस्टॉल करता है।
इसके बाद, प्रोजेक्ट डायरेक्टरी में नेविगेट करें और डेवलपमेंट सर्वर चलाएं जो कि इस पर उपलब्ध है
http://localhost:3000
ब्राउज़र में ऐप का पूर्वावलोकन करने के लिए नीचे दिए गए कमांड का उपयोग करना: cd qrcode-generator npm start
अंत में, क्यूआर कोड जनरेटर बनाने के लिए आवश्यक निर्भरता पुस्तकालय स्थापित करें। कमांड चलाएँ:
npm install qrcode.react
qrcode.react
: DOM को रेंडर करने के लिए QR कोड जेनरेट करने के लिए रिएक्ट कंपोनेंट।अब तक का बढ़िया काम!
क्यूआर कोड जनरेटर का निर्माण उन फाइलों और घटकों के निर्माण से शुरू होगा जिनमें क्यूआर कोड की संरचना होगी। src निर्देशिका के अंदर, घटक नामक एक फ़ोल्डर और फ़ोल्डर में QrCode.js नाम की एक फ़ाइल बनाएँ।
निम्नलिखित कोड को कॉपी और पेस्ट करें:
// src/components/QrCode.js
import { useState } from "react" ; import { QRCodeCanvas } from "qrcode.react" ; const QrCode = () => { const [url, setUrl] = useState( "" ); const downloadQRCode = ( e ) => { e.preventDefault(); setUrl( "" ); }; const qrCodeEncoder = ( e ) => { setUrl(e.target.value); }; const qrcode = ( < QRCodeCanvas
id = "qrCode"
value = {url}
size = {300}
bgColor = { "# 00ff00 "} level = { " H "} />
); return ( < div className = "qrcode__container" >
< div > {qrcode} </ div >
< div className = "input__group" >
< form onSubmit = {downloadQRCode} >
< label > Enter URL </ label >
< input
type = "text"
value = {url}
onChange = {qrCodeEncoder}
placeholder = "https://hackernoon.com"
/>
< button type = "submit" disabled = {!url} >
Download QR code </ button >
</ form >
</ div >
</ div >
); }; export default QrCode;
उपरोक्त कोड स्निपेट निम्न कार्य करते हैं:
useState
चर की प्रारंभिक स्थिति घोषित करने के लिए प्रयोग किया जाता है, यूआरएल जो एक खाली स्ट्रिंग पर सेट है, और setState
समारोह, setUrl
राज्य को अद्यतन करने के लिए उपयोग किया जाता है qrcode.react
, उत्पन्न क्यूआर कोड प्रस्तुत करने के लिए प्रयोग किया जाता है downloadQRCode
समारोह से जुड़ा हुआ है onSubmit
की विधि <form>
तत्व के रूप में यह सबमिट ईवेंट द्वारा ट्रिगर किया गया है <input>
तत्व, onChange
समारोह के साथ घटना हैंडलर 'qrCodeEncoder'
उपयोगकर्ता के इनपुट लेता है, उसका मूल्य प्राप्त करता है और प्रत्येक नए इनपुट टाइप के साथ क्यूआर कोड बदलता है qrcode
बनाया गया है। में लेता है QRCodeCanvas
घटक और कुछ उपलब्ध संकेतों को पास करता है जो ब्राउज़र पर क्यूआर कोड को अनुकूलित और दृश्यमान बनाते हैं। घटक में प्रॉप्स के उपयोग के बारे में अधिक जानने के लिए दस्तावेज़ीकरण देखें <button>
जब तक उपयोगकर्ता इनपुट डेटा प्राप्त नहीं करता तब तक तत्व अक्षम हैमें
src
फ़ोल्डर, स्टाइलशीट बनाएं, styles.css
ऐप की दृश्य अपील के लिए जिम्मेदारनिम्नलिखित कोड को कॉपी और पेस्ट करें:
/* src/styles.css */
*, *:before, *:after { margin: 0 ; padding : 0 ; box-sizing : border-box; } :root { -- font - color : 230 35% 7% ; } body { color : hsl ( var (--font-color)); } img { max-width : 100% ; display : block; } .section { padding : 2em 0 ; display : flex; min-height : 100vh ; align-items : center; } .container { margin -inline: auto; max-width : 75rem ; width : 85% ; } .input__group { display : flex; margin-top : 2em ; } input { width : 100% ; padding : 1em 0.75em ; border : 1px solid #444343 ; border-radius : 3px ; margin-bottom : 2em ; margin-top : 0.75em ; } button { border : unset; background : hsl ( 231 , 77% , 90% ); padding : 1em 0.75em ; color : hsl ( var (--font-color)); cursor : pointer; text-transform : uppercase; font-weight : bold; } @media screen and ( min-width : 768px ) { .section { padding : 0 ; } input { margin : 0 ; } .qrcode__container { display : flex; align-items : center; } .input__group { margin-left : 3em ; } input { margin-bottom : 2em ; margin-top : 0.75em ; font-size : 1rem ; } }
इसके बाद, ऐप के प्रवेश बिंदु, App.js में QrCode.js फ़ाइल और स्टाइलशीट आयात करें:
// src/App.js
import QrCode from "./components/QrCode" ; import "./styles.css" ; export default function App ( ) { return ( < div className = "section container" >
< QrCode />
</ div >
); }
पूर्ण चरणों के साथ, ऐप इस तरह दिखना चाहिए:
उपयोगकर्ताओं के लिए जेनरेट किए गए क्यूआर कोड को डाउनलोड करने का विकल्प इसे विभिन्न प्रकार के उपयोग के मामलों में उपयोगी बनाता है। कोड को प्रिंट करने से लेकर वेबसाइट पर एम्बेड करने तक, उपयोग के मामले असीमित हैं।
में वापस
components/QrCode.js
फ़ाइल, आइए उपयोग करने के लिए कोडबेस को अपडेट करें refs
दस्तावेज़ ऑब्जेक्ट मॉडल (DOM) नोड्स तक पहुँचने के लिए। // src/components/QrCode.js
import { useState, useRef } from "react" ; // other import
const QrCode = () => { const [url, setUrl] = useState( "" ); const qrRef = useRef(); // include this: call the useRef function
... const qrcode = ( < QRCodeCanvas
id = "qrCode"
value = {url}
size = {300}
bgColor = { "# 00ff00 "} level = { " H "} />
); return ( < div className = "qrcode__container" >
< div ref = {qrRef} > {qrcode} </ div > {/* include this */} {/* form input container */} </ div >
); }; export default QrCode;
अब, आइए अपडेट करते हैं
downloadQRCode
में समारोह QrCode.js
डाउनलोड क्यूआर कोड बटन पर क्लिक करने और कैनवास को छवि फ़ाइल के रूप में सहेजने में सक्षम होने के लिए फ़ाइल। // src/components/QrCode.js
// imports
const QrCode = () => { // state
// useRef
const downloadQRCode = ( e ) => { e.preventDefault(); let canvas = qrRef.current.querySelector( "canvas" ); let image = canvas.toDataURL( "image/png" ); let anchor = document .createElement( "a" ); anchor.href = image; anchor.download = `qr-code.png` ; document .body.appendChild(anchor); anchor.click(); document .body.removeChild(anchor); setUrl( "" ); }; ... return ( < div className = "qrcode__container" >
< div ref = {qrRef} > {qrcode} </ div >
{/* form input container */} </ div >
); }; export default QrCode;
में
downloadQRCode
समारोह, निम्नलिखित होता है: qrcode.react
घटक डोम में कैनवास तत्व उत्पन्न करता है जो आपको गतिशील रूप से सामग्री बनाने की क्षमता देता है toDataURL
फ़ाइल प्रारूप में निर्दिष्ट निर्दिष्ट प्रकार पैरामीटर के साथ विधि, image/png
<a>
तत्व बनाया गया है और href
छवि पर सेट है जो बटन क्लिक करने पर क्यूआर कोड डाउनलोड करता है setUrl
वेरिएबल जो फ़ॉर्म सबमिट करते ही जेनरेट किए गए क्यूआर कोड के लिए इनपुट को साफ़ करता हैघटक QrCode.js के लिए पूरा कोड:
import { useState, useRef } from "react" ; import { QRCodeCanvas } from "qrcode.react" ; const QrCode = () => { const [url, setUrl] = useState( "" ); const qrRef = useRef(); const downloadQRCode = ( e ) => { e.preventDefault(); let canvas = qrRef.current.querySelector( "canvas" ); let image = canvas.toDataURL( "image/png" ); let anchor = document .createElement( "a" ); anchor.href = image; anchor.download = `qr-code.png` ; document .body.appendChild(anchor); anchor.click(); document .body.removeChild(anchor); setUrl( "" ); }; const qrCodeEncoder = ( e ) => { setUrl(e.target.value); }; const qrcode = ( < QRCodeCanvas
id = "qrCode"
value = {url}
size = {300}
bgColor = { "# 00ff00 "} level = { " H "} />
); return ( < div className = "qrcode__container" >
< div ref = {qrRef} > {qrcode} </ div >
< div className = "input__group" >
< form onSubmit = {downloadQRCode} >
< label > Enter URL </ label >
< input
type = "text"
value = {url}
onChange = {qrCodeEncoder}
placeholder = "https://hackernoon.com"
/>
< button type = "submit" disabled = {!url} >
Download QR code </ button >
</ form >
</ div >
</ div >
); }; export default QrCode;
ऐप का अंतिम परिणाम इस तरह दिखना चाहिए:
इस ट्यूटोरियल ने एक क्यूआर कोड जनरेटर बनाने की प्रक्रिया का वर्णन किया और इसे बाद में उपयोग के लिए कैसे डाउनलोड किया जा सकता है।