日韩精品亚洲精品中文字幕乱伦AV|曰韩区二区三区日韩中文字幕五码|ady99久久人人看人人摸人人|动漫一区二区黄99精品视频在线|AV片在线观看亚洲中文国产精品|伦乱在线VA欧美性爱一二区|亚洲无码mv91热色视频|激情六月综合欧美精品中文

當(dāng)前位置:首頁 > 軟件開放 > 正文內(nèi)容

在網(wǎng)站上獲取代碼(網(wǎng)站上的代碼可以復(fù)制下來嗎)

軟件開放1年前 (2023-11-24)548

譯者 | 趙青窕

審校 | 孫淑娟

創(chuàng)建二維碼生成器(Quick Response Code Generator)就是將圖像格式轉(zhuǎn)換為文本格式進(jìn)行轉(zhuǎn)換。二維碼(QR code)是利用圖像數(shù)據(jù)來代表文本信息,它有很多應(yīng)用場景,如餐廳菜單,音樂會門票,在線日歷邀請、支付等場景。

在本教程中,你將學(xué)習(xí)如何使用Java庫React創(chuàng)建二維碼。React為開發(fā)人員提供了重用組件的方式,使得構(gòu)建前端應(yīng)用程序變得輕而易舉。

前提條件

要充分理解本文,你需要具備以下知識和環(huán)境:

了解React.js基本內(nèi)容

你的環(huán)境需要滿足Node = 14.0.0,npm = 5.6

了解React.js基本內(nèi)容

你的環(huán)境需要滿足Node = 14.0.0,npm = 5.6

準(zhǔn)備工作

首先,打開終端并運(yùn)行以下命令:

npx create-react-app qrcode-generator

上面的命令附帶了必要的文件,并安裝了創(chuàng)建React應(yīng)用程序所需的軟件包。

接下來,使用下面的命令切換到自己構(gòu)建的項(xiàng)目目錄下,并運(yùn)行開發(fā)服務(wù)器(Development Server),從而可以訪問http://localhost:3000,以瀏覽器的形式預(yù)覽應(yīng)用。

展開全文

cdqrcode-generator

npm start

最后,讓我們使用下面的命令安裝創(chuàng)建二維碼生成器所需的依賴庫:

npm install qrcode.react

qrcode.react:一個React組件,用于生成二維碼,并將其呈現(xiàn)給DOM。

在網(wǎng)站上獲取代碼(網(wǎng)站上的代碼可以復(fù)制下來嗎)

創(chuàng)建二維碼生成器

二維碼生成器的創(chuàng)建將從創(chuàng)建包含二維碼結(jié)構(gòu)的文件和組件開始。在src目錄中,創(chuàng)建一個名為components的文件夾,并在文件夾中創(chuàng)建一個名為QrCode.js的文件。下面是對應(yīng)的代碼實(shí)現(xiàn)方式:

// 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}

labelEnter 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

);

};

exportdefault QrCode;

左右滑動查看完整代碼

上面的代碼片段做了如下操作:

Import useState用于聲明變量的初始狀態(tài),url設(shè)置為空字符串, setState函數(shù)和setUrl用于更新狀態(tài);

庫qrcode.react用于呈現(xiàn)生成的二維碼;

接下來,使用from element中,附加到onSubmit方法中的downloadQRCode函數(shù),該過程由submit事件觸發(fā);

在input元素中,帶有函數(shù)' qrCodeEncoder '的onChange事件處理程序用來接收用戶的輸入,并根據(jù)獲取的輸入值更改二維碼;

創(chuàng)建一個變量qrcode。它接受QRCodeCanvas組件,并傳遞一些可用的自定義屬性,使二維碼可以在瀏覽器上顯示出來。

最后,button元素將被禁用,直到接收到用戶輸入數(shù)據(jù)。

Import useState用于聲明變量的初始狀態(tài),url設(shè)置為空字符串, setState函數(shù)和setUrl用于更新狀態(tài);

庫qrcode.react用于呈現(xiàn)生成的二維碼;

接下來,使用from element中,附加到onSubmit方法中的downloadQRCode函數(shù),該過程由submit事件觸發(fā);

在input元素中,帶有函數(shù)' qrCodeEncoder '的onChange事件處理程序用來接收用戶的輸入,并根據(jù)獲取的輸入值更改二維碼;

創(chuàng)建一個變量qrcode。它接受QRCodeCanvas組件,并傳遞一些可用的自定義屬性,使二維碼可以在瀏覽器上顯示出來。

最后,button元素將被禁用,直到接收到用戶輸入數(shù)據(jù)。

設(shè)計(jì)二維碼應(yīng)用程序

在src文件夾中,創(chuàng)建樣式表(stylessheet)styles.css,該部分負(fù)責(zé)應(yīng)用程序的顯示效果, 下面是對應(yīng)的代碼實(shí)現(xiàn)方式:

/* 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的入口app .js中導(dǎo)入QrCode.js文件和樣式表:

// src/App.js

import QrCode from "./components/QrCode";

import "./styles.css";

exportdefault functionApp{

return(

div className= "section container"

QrCode /

/div

);

}

左右滑動查看完整代碼

完成上面步驟后,app顯示如下圖所示:

用戶可以選擇下載生成的二維碼,使得它可以應(yīng)用在各種各樣的用例中。從打二維碼的打印到將其嵌入網(wǎng)站,這樣的例子不勝枚舉。

回到components/QrCode.js文件,讓我們更新代碼庫,以使用refs來訪問文檔對象模型節(jié)點(diǎn)(DOM Node)。

// 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

);

};

exportdefault QrCode;

左右滑動查看完整代碼

現(xiàn)在,讓我們更新QrCode.js文件中的downloadQRCode函數(shù),以便能夠單擊下載二維碼按鈕并將下載后的文件保存為圖像文件。

// src/components/QrCode.js

// imports

const QrCode = = {

// state

// useRef

const downloadQRCode = (e) = {

e.preventDefault;

letcanvas = qrRef.current.querySelector( "canvas");

letimage = canvas.toDataURL( "image/png");

letanchor = document.( "a");

anchor.href = image;

anchor.download = `qr-code.png`;

document.body.(anchor);

anchor.click;

document.body.removeChild(anchor);

setUrl( "");

};

...

return(

div className= "qrcode__container"

div ref={qrRef}{qrcode}/div

{/* form input container */}

/div

);

};

exportdefault QrCode;

左右滑動查看完整代碼

在downloadQRCode函數(shù)中,主要完成了以下任務(wù):

它使用ref對象的.current屬性來獲取當(dāng)前值,以便知道節(jié)點(diǎn)何時(shí)發(fā)生變化;

利用qrcode.react組件在DOM中生成canvas元素,可以動態(tài)創(chuàng)建內(nèi)容;

canvas被追加到toDataURL方法中,且指定器類型為文件格式image/png;

接下來,創(chuàng)建錨元素(Anchor Element),并將href設(shè)置為單擊按鈕時(shí)下載二維碼的圖像;

anchor被附加到文檔主體,一旦二維碼下載后,它就會被刪除;

最后,使用setUrl變量更新狀態(tài)url,該操作在執(zhí)行submit后會清除二維碼對應(yīng)的輸入。

它使用ref對象的.current屬性來獲取當(dāng)前值,以便知道節(jié)點(diǎn)何時(shí)發(fā)生變化;

利用qrcode.react組件在DOM中生成canvas元素,可以動態(tài)創(chuàng)建內(nèi)容;

canvas被追加到toDataURL方法中,且指定器類型為文件格式image/png;

接下來,創(chuàng)建錨元素(Anchor Element),并將href設(shè)置為單擊按鈕時(shí)下載二維碼的圖像;

anchor被附加到文檔主體,一旦二維碼下載后,它就會被刪除;

最后,使用setUrl變量更新狀態(tài)url,該操作在執(zhí)行submit后會清除二維碼對應(yīng)的輸入。

最后的完整代碼如下:

import { useState, useRef } from "react";

import { QRCodeCanvas } from "qrcode.react";

const QrCode = = {

const [url, setUrl] = useState( "");

const qrRef = useRef;

const downloadQRCode = (e) = {

e.preventDefault;

letcanvas = qrRef.current.querySelector( "canvas");

letimage = canvas.toDataURL( "image/png");

letanchor = document.( "a");

anchor.href = image;

anchor.download = `qr-code.png`;

document.body.(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}

labelEnter 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

);

};

exportdefault QrCode;

上述代碼對應(yīng)的應(yīng)用程序如下圖所示:

本教程描述了創(chuàng)建二維碼生成器的過程,以及如何下載以供后續(xù)使用。

參考資料:

二維碼:

https://github.com/zpao/qrcode.react?ref=hackernoon.com

錨元素(The anchor element):

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a?ref=hackernoon.com

二維碼簡介:

https://en.wikipedia.org/wiki/QR_code?ref=hackernoon.com

https://hackernoon.com/how-to-build-a-qr-code-generator-in-react

趙青窕,51CTO社區(qū)編輯,從事多年驅(qū)動開發(fā)。

三連給小編加雞腿!

掃描二維碼推送至手機(jī)訪問。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。

本文鏈接:http://m.atlasseeker.com/post/65559.html

“在網(wǎng)站上獲取代碼(網(wǎng)站上的代碼可以復(fù)制下來嗎)” 的相關(guān)文章

uu8686游戲交易平臺怎么樣(uu868游戲交易官網(wǎng)客服)

uu8686游戲交易平臺怎么樣(uu868游戲交易官網(wǎng)客服)

今天給各位分享uu8686游戲交易平臺怎么樣的知識,其中也會對uu868游戲交易官網(wǎng)客服進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、uu8968和8686購寶通這兩個游戲交易平臺可靠嗎?可不可安全購買? 2、有個叫UU86的交易平臺是騙人的 大家不要...

用Python設(shè)計(jì)小游戲(python設(shè)計(jì)小游戲誰先走到17誰就贏)

用Python設(shè)計(jì)小游戲(python設(shè)計(jì)小游戲誰先走到17誰就贏)

本篇文章給大家談?wù)動肞ython設(shè)計(jì)小游戲,以及python設(shè)計(jì)小游戲誰先走到17誰就贏對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、Python實(shí)現(xiàn)消消樂小游戲 2、用Python寫一個簡單的小游戲 3、python簡單小游戲代碼 怎么用Python制作簡單小...

怎樣畫漫畫少女的圖片(怎樣畫漫畫少女的圖片大全)

怎樣畫漫畫少女的圖片(怎樣畫漫畫少女的圖片大全)

今天給各位分享怎樣畫漫畫少女的圖片的知識,其中也會對怎樣畫漫畫少女的圖片大全進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、少女怎么畫動漫人物 2、如何畫漫畫少女 3、怎么畫漫畫少女 4、卡通人物簡筆畫美少女怎么畫? 少女怎么畫動漫人物 少女動...

怎樣看懂心電圖波形(怎么看心電圖的波形)

怎樣看懂心電圖波形(怎么看心電圖的波形)

今天給各位分享怎樣看懂心電圖波形的知識,其中也會對怎么看心電圖的波形進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、心電圖怎么看,心電圖講解,心電圖t波改變 2、怎樣看心電圖曲線 3、心電圖怎么看? 4、心電圖怎么看_怎么看懂心電圖 5、教你...

大話西游手游藏寶閣出售條件(大話西游手游藏寶閣交易條件)

大話西游手游藏寶閣出售條件(大話西游手游藏寶閣交易條件)

本篇文章給大家談?wù)劥笤捨饔问钟尾貙氶w出售條件,以及大話西游手游藏寶閣交易條件對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、大話西游2藏寶閣多少級可以寄售(賣東西) 2、大話西游手游賬號可以交易嗎 告訴下流程? 3、大話西游手游藏寶閣異常交易保護(hù)說明 4、37...

問道手游聚寶齋官網(wǎng)奇寶齋怎么登陸(問道手游聚寶齋怎么進(jìn)入)

問道手游聚寶齋官網(wǎng)奇寶齋怎么登陸(問道手游聚寶齋怎么進(jìn)入)

今天給各位分享問道手游聚寶齋官網(wǎng)奇寶齋怎么登陸的知識,其中也會對問道手游聚寶齋怎么進(jìn)入進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、怎么在問道手游找收幣的人 2、問道奇寶齋我的錢包為什么在登陸頁面老是等不進(jìn)去?我的手機(jī)綁定都3個多月了! 3、問道奇...