日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

寫了一個(gè)二維碼組件,解決了自己多年的痛點(diǎn)

freeflydom
2025年3月20日 10:29 本文熱度 424

PS:此文章只談自己對(duì)開發(fā)過程中的思考,不談?dòng)?jì)算問題。

不知道你們有沒有遇到過這種情況:在開發(fā)網(wǎng)站時(shí)有時(shí)候需要向用戶展示二維碼,但是市面上的二維碼插件一般都是JS調(diào)用,需要自己對(duì)他初始化。有時(shí)候在業(yè)務(wù)場(chǎng)景中,用戶可能關(guān)閉彈出層或者超時(shí)需要重新渲染二維碼,還有時(shí)候一個(gè)網(wǎng)頁需要同時(shí)展示多個(gè)二維碼。這就讓這種調(diào)用方式十分笨拙。因?yàn)槎S碼算法可能只是提供二維數(shù)組信息或者只是初始化成簡(jiǎn)單的黑白兩色。這樣的方式不方便又不美觀。

于是我就在想,能不能像引用圖片一樣簡(jiǎn)單呢?只需要改變圖片地址,用戶看到的效果就是一張全新的二維碼圖片!改屬性就是改二維碼內(nèi)容,開發(fā)人員布局這個(gè)元素和正常圖片無異,CSS可以直接控制它的寬高。

我想,現(xiàn)在的前端開發(fā)早就走向組件化了,那么這個(gè)二維碼一定需要以Web組件的形式使用。而現(xiàn)在各種前端框架橫行,React、Vue等等,我想既然做了,不能只針對(duì)一個(gè)框架寫。同時(shí)這個(gè)組件本身不復(fù)雜,一個(gè)文件引用足矣。于是,我選定了Web Components這款,讓瀏覽器原生支持它,就開始了開發(fā)<widget-qrcode>這個(gè)組件。

二維碼二維數(shù)組的生成,我是直接復(fù)制qrcode.js的代碼。因?yàn)橛X得這本身成熟了,沒必要從頭再來,我關(guān)注的是自己需要解決的應(yīng)用痛點(diǎn)。即“易用”和“美觀”。

組件的使用很簡(jiǎn)單,對(duì)value屬性進(jìn)行賦值,就是對(duì)二維碼內(nèi)容進(jìn)行修改。

<widget-qrcode value="https://passer-by.com/"></widget-code>

二維碼的組成

為了介紹二維碼組件的使用,需要額外提到二維碼的組成。它包括了內(nèi)容區(qū)碼眼。碼眼的作用在于對(duì)二維碼進(jìn)行定位判定,否則,當(dāng)一張二維碼圖片隨意翻轉(zhuǎn)的時(shí)候,程序無法分清上下左右。而內(nèi)容區(qū),就是你輸入的內(nèi)容通過復(fù)雜的計(jì)算用黑白形式編碼出來的,里面包含了校驗(yàn)容錯(cuò)部分。黑白的明暗變化(即前景色和背景色),對(duì)于解碼程序來說就是信息。也就是說,我們做出來的二維碼并不需要拘泥于黑白兩色和方形的外觀,同時(shí)還可以有一定面積的信息遮擋。

關(guān)于二維碼美化

要對(duì)二維碼進(jìn)行美化,就需要可以對(duì)前景色背景色進(jìn)行自定義設(shè)置。既然是美化,配色不能再只有兩種了吧?就像之前說的,對(duì)于二維碼解碼程序來說,顏色只有深淺之分,解碼程序會(huì)自己對(duì)二維碼進(jìn)行去色再二值化處理。那么,讓用戶可以自行設(shè)置多種顏色就是必須的啦。

同時(shí)為了保證多樣化,需要對(duì)二維碼外形進(jìn)行變化。同時(shí)如果過于開放又沒法保證它"易用性"的定位,我不想讓自己做的這個(gè)組件因?yàn)樗y用而沒人愛用。于是,我把對(duì)外形的控制設(shè)定為模板,用戶只需要用我提供的幾個(gè)模板即可。

為了保證內(nèi)容的豐富,提高二維碼的識(shí)別度,很多人會(huì)在二維碼上部添加品牌logo。這樣能在二維碼上添加圖片和文字就是必不可少的了!同時(shí),文字還有自己的顏色可以配合二維碼的配色。

屬性說明
value二維碼內(nèi)容
template二維碼樣式模板, 可選:'default','water','diamond','hexagon','star','rect','bar','heart','glitter','stroke','fusion'
level糾錯(cuò)等級(jí),可選:'M','L','Q','H'
width二維碼寬度,默認(rèn):300
height二維碼高度,默認(rèn):300
background-color背景色,默認(rèn):#ffffff
foreground-color前景色,默認(rèn):#000000;(多色用逗號(hào)分隔)
inner-color定位點(diǎn)內(nèi)層顏色,默認(rèn):#000000
outer-color定位點(diǎn)外層顏色,默認(rèn):#000000
background-image背景圖片地址
foreground-image前景圖片地址
logologo圖片地址
text懸浮文本內(nèi)容
text-color懸浮文本顏色
text-stroke懸浮文本描邊

二維碼美化效果

你根據(jù)需要調(diào)整其他屬性,如糾錯(cuò)等級(jí)、添加背景圖片、前景圖片、logo、懸浮文本等,以滿足個(gè)性化的需求。

 

【倉(cāng)庫(kù)地址】https://github.com/mumuy/widget-qrcode/

【演示地址】https://passer-by.com/widget-qrcode/?

轉(zhuǎn)自https://juejin.cn/post/7455999467525210139


該文章在 2025/3/20 10:29:59 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 日韩一本之道一区中文字幕 | 国产精品1024永久免费中国 | 欧美亚洲日韩国产人成在线播放 | 中文字幕亚洲不卡在线亚瑟 | 乱伦精品亚洲影视 | 日韩欧美精品一区二区三区在线 | 福利一区二区在线 | 国产免费爽爽视频在线观看 | 欧美日韩一区观看 | 综合色就爱涩涩涩综合婷婷 | 欧美日韩一区不卡 | 一区二区三区网站 | 在线精品亚洲一 | 亚洲人成欧美中文字幕 | 色就是色亚洲欧洲视频 | 国产专区第一页 | 国产精品国产自线拍免费不卡 | 欧美一区二区三区免费观看视频 | 日产乱码区别免费必看 | 亚洲三级一区二区在线观看 | 九九在线免费视频 | 亚洲精品aⅴ中文字幕乱码 国产在线ts | 麻花传媒免费网站在线观看 | 欧美精品欧美***欧美激情 | 五月天丁香婷深爱综合网 | 69精品人人人人 | 免费高清理伦片在线观看 | 免费最新热播韩剧美剧电视剧 | 日韩电影免费观 | 亚洲伊人精品酒店 | 亚洲激情乱伦 | 精品日韩成人欧美 | 红杏免费视频网站入口导航 | 欧美午夜理伦三级在 | 国产suv精品一区二区6 | 视频一区二区欧美 | 午夜亚洲国产理论片秋霞 | 欧美一区二区成人精品视频 | 亚洲综合国产在不卡在线首映 | 精品无人乱码区1区2区3区 | 欧美激情性猛交 |