溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用vue怎么動態(tài)生成一個二維碼

發(fā)布時間:2021-04-16 17:42:12 來源:億速云 閱讀:286 作者:Leah 欄目:web開發(fā)

今天就跟大家聊聊有關(guān)使用vue怎么動態(tài)生成一個二維碼,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

1.引入二維碼生成模塊

npm install qrcodejs2 --save

注意:此處安裝qrcodejs2,安裝依賴后可在main方法中進行全局引用設(shè)置,也可單獨某個頁面中進行引用設(shè)置。

2.引入使用

import QRCode from 'qrcodejs2';

備注:在main中設(shè)置全局可使用 Vue.prototype.qrCode

使用vue怎么動態(tài)生成一個二維碼

3.頁面展示與配置

3.1 html代碼

放置生成二維碼圖片的容器

<div id="qrCode" ref="qrCodeDiv"></div>

3.2 js代碼

js代碼有三種放入位置

第一種:放置在mounted生命周期函數(shù)中

mounted() {
 new QRCode(this.$refs.qrCodeDiv, {
 text: "https://www.baidu.com",
 width: 200,
 height: 200,
 colorDark: "#333333", //二維碼顏色
 colorLight: "#ffffff", //二維碼背景色
 correctLevel: QRCode.CorrectLevel.L //容錯率,L/M/H
 });
}

第二種:放置在created生命周期函數(shù)中,但是注意一定要放在this.$nextTick的回掉函數(shù)中

created() {
 this.$nextTick(function() {
 new QRCode(this.$refs.qrCodeDiv, {
  text: "https://www.baidu.com",
  width: 200,
  height: 200,
  colorDark: "#333333", //二維碼顏色
  colorLight: "#ffffff", //二維碼背景色
  correctLevel: QRCode.CorrectLevel.L //容錯率,L/M/H
 });
 });
},

第三種方式:放置在methods屬性中的指定方法中,并且在mouted生命周期函數(shù)中調(diào)用這個方法(最好也把這個方法的調(diào)用放置在this.$nextTick的回掉函數(shù)中)

mounted: function () {
 this.$nextTick(function () {
 this.bindQRCode();
 })
},
methods: {
 bindQRCode: function () {
 new QRCode(this.$refs.qrCodeDiv, {
  text: 'https://www.baidu.com',
  width: 200,
  height: 200,
  colorDark: "#333333", //二維碼顏色
  colorLight: "#ffffff", //二維碼背景色
  correctLevel: QRCode.CorrectLevel.L//容錯率,L/M/H
 })
 }
}

4.注意點

1.顯示內(nèi)容(text所指向內(nèi)容)必須是UTF-8編碼格式。

2.生成二維碼js必須在 this.$nextTick(function(){調(diào)用})或setTimeout(() => { 調(diào)用 }, 100),是為了確保二維碼容器DOM已經(jīng)存在。

3.為了防止重復(fù)生成二維碼,使用置空進行控制:document.getElementById("qrcode").innerHTML = "";

看完上述內(nèi)容,你們對使用vue怎么動態(tài)生成一個二維碼有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

vue
AI