您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關使用vue怎么動態生成一個二維碼,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
1.引入二維碼生成模塊
npm install qrcodejs2 --save
注意:此處安裝qrcodejs2,安裝依賴后可在main方法中進行全局引用設置,也可單獨某個頁面中進行引用設置。
2.引入使用
import QRCode from 'qrcodejs2';
備注:在main中設置全局可使用 Vue.prototype.qrCode
3.頁面展示與配置
3.1 html代碼
放置生成二維碼圖片的容器
<div id="qrCode" ref="qrCodeDiv"></div>
3.2 js代碼
js代碼有三種放入位置
第一種:放置在mounted生命周期函數中
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生命周期函數中,但是注意一定要放在this.$nextTick的回掉函數中
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生命周期函數中調用這個方法(最好也把這個方法的調用放置在this.$nextTick的回掉函數中)
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.顯示內容(text所指向內容)必須是UTF-8編碼格式。
2.生成二維碼js必須在 this.$nextTick(function(){調用})或setTimeout(() => { 調用 }, 100),是為了確保二維碼容器DOM已經存在。
3.為了防止重復生成二維碼,使用置空進行控制:document.getElementById("qrcode").innerHTML = "";
看完上述內容,你們對使用vue怎么動態生成一個二維碼有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。