国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue實(shí)現(xiàn)二維碼,讓你的數(shù)據(jù)輕松傳遞

這篇具有很好參考價(jià)值的文章主要介紹了Vue實(shí)現(xiàn)二維碼,讓你的數(shù)據(jù)輕松傳遞。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

在我們生活中,二維碼的應(yīng)用越來越廣泛,特別是在移動(dòng)互聯(lián)網(wǎng)的時(shí)代,二維碼成為了快速傳達(dá)信息的一種利器。在這篇文章中,我們將會(huì)介紹如何在Vue框架下,實(shí)現(xiàn)一個(gè)具備掃描和查看數(shù)據(jù)的二維碼。

在這一篇文章中,我們將會(huì)使用到以下兩個(gè)庫:

  1. qrcode.js:一個(gè)簡(jiǎn)單易用的JavaScript庫,可以用于生成QRCode(二維碼),支持多種場(chǎng)景和格式設(shè)置。

  2. qrcodelib:一個(gè)非常輕量級(jí)的二維碼解碼庫,用于解碼QRCode中的信息。

我們需要先安裝這兩個(gè)庫:

npm install qrcode.js qrcodelib --save

接下來,我們將會(huì)著手構(gòu)建這個(gè)二維碼應(yīng)用。

首先,讓我們創(chuàng)建一個(gè)Vue組件來放置我們的二維碼。我們可以使用<canvas>標(biāo)簽來繪制QRCode。下面是一個(gè)簡(jiǎn)單的例子:

<template>
  <div>
    <canvas ref="qrcodeCanvas" :width="qrcodeWidth" :height="qrcodeHeight"></canvas>
  </div>
</template>

<script>
import QRCode from 'qrcode.js'

export default {
  name: 'QRCode',
  props: {
    qrcodeData: {
      type: String,
      required: true
    },
    qrcodeWidth: {
      type: [Number, String],
      default: 200
    },
    qrcodeHeight: {
      type: [Number, String],
      default: 200
    }
  },
  mounted () {
    // 在組件掛載后,我們會(huì)調(diào)用 qrcode.js 的 API,來實(shí)現(xiàn)生成二維碼,并將其繪制在 canvas 上。
    const qrcode = new QRCode(this.$refs.qrcodeCanvas, {
      text: this.qrcodeData,
      width: this.qrcodeWidth,
      height: this.qrcodeHeight
    })
  }
}
</script>

在這個(gè)組件中,我們引入了qrcode.js庫,接著,我們通過props來接收二維碼的數(shù)據(jù)、寬度和高度。在組件掛載之后,我們通過實(shí)例化QRCode來生成二維碼,最后將其繪制在<canvas>標(biāo)簽中。

現(xiàn)在讓我們測(cè)試一下我們的二維碼是否生效。在我們的組件中添加以下代碼:

mounted () {
  const qrcode = new QRCode(this.$refs.qrcodeCanvas, {
    text: this.qrcodeData,
    width: this.qrcodeWidth,
    height: this.qrcodeHeight
  })
  
  // 為二維碼添加一個(gè)點(diǎn)擊事件,當(dāng)我們點(diǎn)擊二維碼時(shí),會(huì)彈出一個(gè)對(duì)話框,顯示QRCode中的信息
  this.$refs.qrcodeCanvas.onclick = () => {
    const result = qr_decode(qrcode)
    if (result) {
      alert(result)
    }
  }
}

在上述代碼中,我們首先為<canvas>標(biāo)簽添加了一個(gè)點(diǎn)擊事件,當(dāng)我們點(diǎn)擊二維碼時(shí),會(huì)調(diào)用qr_decode函數(shù),來解碼二維碼中的信息。qr_decode來自于我們前面引入的qrcodelib庫。

接下來,我們需要定義qr_decode函數(shù):

import qrcode from 'qrcodelib'

function qr_decode (qrcode) {
  // 從 canvas 標(biāo)簽獲取 QRCode 的像素矩陣
  const imageData = qrcode._el.getContext('2d').getImageData(0, 0, qrcode._htOption.width, qrcode._htOption.height).data

  try {
    // 解碼二維碼中的信息
    const result = qrcode.decode(imageData)
    return result.text
  } catch (e) {
    alert('QRCode 解碼失敗')
    return false
  }
}

在上面的代碼中,我們首先獲取了<canvas>標(biāo)簽中的像素矩陣。接著,我們調(diào)用qrcode.decode函數(shù)來解碼二維碼中的信息。如果二維碼解碼成功,將會(huì)返回QRCode中嵌入的文本信息。

如果二維碼解碼失敗,則會(huì)彈出一個(gè)對(duì)話框,提示用戶QRCode解碼失敗。

現(xiàn)在,我們已經(jīng)完成了二維碼掃描和信息查看的主要邏輯,接下來,我們需要通過傳遞一些行程數(shù)據(jù)來使用這個(gè)二維碼。

<template>
  <div>
    <canvas ref="qrcodeCanvas" :width="qrcodeWidth" :height="qrcodeHeight"></canvas>
  </div>
</template>

<script>
import QRCode from 'qrcode.js'
import qrcode from 'qrcodelib'

export default {
  name: 'QRCode',
  props: {
    qrcodeData: {
      type: Object,
      required: true
    },
    qrcodeWidth: {
      type: [Number, String],
      default: 200
    },
    qrcodeHeight: {
      type: [Number, String],
      default: 200
    }
  },
  mounted () {
    // 將 this.qrcodeData 轉(zhuǎn)換成字符串格式,用于生成 QRCode
    const qrcodeString = JSON.stringify(this.qrcodeData)

    // 使用 qrcode.js 生成 QRCode
    const qrcode = new QRCode(this.$refs.qrcodeCanvas, {
      text: qrcodeString,
      width: this.qrcodeWidth,
      height: this.qrcodeHeight
    })

    // 為二維碼添加點(diǎn)擊事件,當(dāng)用戶點(diǎn)擊二維碼時(shí),顯示出行程數(shù)據(jù)
    this.$refs.qrcodeCanvas.onclick = () => {
      const result = this.$data.qrcode.decode(qrcode)
      if (result) {
        alert(JSON.parse(result))
      }
    }
  },
  data () {
    return {
      qrcode: qrcode
    }
  }
}
</script>

總結(jié)

在上面的代碼中,我們修改了props的數(shù)據(jù)類型,使用了Object來代替之前的String。在組件的mounted生命周期鉤子中,我們將這個(gè)對(duì)象轉(zhuǎn)換成字符串,并將其用于生成QRCode。

當(dāng)用戶點(diǎn)擊QRCode時(shí),我們通過之前定義的qr_decode函數(shù),來解碼QRCode中的信息,并將其轉(zhuǎn)換成JSON對(duì)象,最后彈出一個(gè)對(duì)話框顯示行程數(shù)據(jù)。

在最后一步中,我們通過data選項(xiàng)將二維碼解碼庫qrcodelib引入組件中,并賦值給組件實(shí)例的data屬性。這里的目的是為了組件重復(fù)使用時(shí),避免重復(fù)引入和加載qrcodelib庫。

好了,現(xiàn)在我們已經(jīng)完成了Vue框架下的二維碼實(shí)現(xiàn),現(xiàn)在我們可以快樂的將行程數(shù)據(jù)分享給別人了。文章來源地址http://www.zghlxwxcb.cn/news/detail-450278.html

到了這里,關(guān)于Vue實(shí)現(xiàn)二維碼,讓你的數(shù)據(jù)輕松傳遞的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 純前端實(shí)現(xiàn)二維碼生成(原生/vue方法)(超簡(jiǎn)單)

    純前端實(shí)現(xiàn)二維碼生成(原生/vue方法)(超簡(jiǎn)單)

    我們借用了qrcode.js插件,這個(gè)插件可以幫助我們生成二維碼,超簡(jiǎn)單超好用 下面是我生成了一個(gè)主頁的二維碼,大家可以掃碼查看效果 1.本地文件引入 本地引入依賴包地址:下載地址 ?1.首先引入插件,這里我是script標(biāo)簽引入的,如果用vue直接全局引入即可 2.npm方式引入 2

    2024年04月22日
    瀏覽(36)
  • 基于Vue3實(shí)現(xiàn)掃碼槍掃碼并生成二維碼的代碼解析

    在本文中,我們將介紹如何使用Vue3實(shí)現(xiàn)掃碼槍掃描條形碼或二維碼,并將其轉(zhuǎn)換為二維碼的過程。這個(gè)過程將涉及到以下步驟: 在Vue3項(xiàng)目中安裝和導(dǎo)入 vue-qrcode-reader 插件。 創(chuàng)建一個(gè)Vue3組件,用于渲染二維碼。 在組件中實(shí)現(xiàn)掃碼槍掃描條形碼或二維碼的邏輯。 將掃描到的

    2024年02月09日
    瀏覽(25)
  • 二維碼智慧門牌管理系統(tǒng):實(shí)現(xiàn)數(shù)據(jù)通信安全

    二維碼智慧門牌管理系統(tǒng):實(shí)現(xiàn)數(shù)據(jù)通信安全

    隨著信息技術(shù)的蓬勃發(fā)展,智慧門牌管理系統(tǒng)已成為現(xiàn)代商業(yè)和家庭重要的一部分。然而,系統(tǒng)普及的同時(shí)也帶來了數(shù)據(jù)通信安全的突出問題。為了解決這一挑戰(zhàn),二維碼智慧門牌管理系統(tǒng)升級(jí)解決方案應(yīng)運(yùn)而生,以數(shù)據(jù)通信安全為核心,通過多種技術(shù)手段確保數(shù)據(jù)在傳輸和

    2024年02月03日
    瀏覽(34)
  • Vue中使用qrcode實(shí)現(xiàn)渲染二維碼中間添加自定義logo-demo

    Vue中使用qrcode實(shí)現(xiàn)渲染二維碼中間添加自定義logo-demo

    我們首先創(chuàng)建一個(gè)新的 canvas 元素,用于容納生成的二維碼。然后,使用 QRCode.toCanvas 方法將二維碼生成到新的 canvas 元素中。 接下來,在 logo.onload 事件處理程序中,我們創(chuàng)建一個(gè) Image 對(duì)象來加載logo圖像,并在二維碼中間繪制logo。最后,將生成的二維碼轉(zhuǎn)換為數(shù)據(jù)URL,并將

    2024年02月10日
    瀏覽(42)
  • vue3+jsQr實(shí)現(xiàn)手機(jī)瀏覽器調(diào)用本地?cái)z像頭掃描并識(shí)別二維碼

    vue3+jsQr實(shí)現(xiàn)手機(jī)瀏覽器調(diào)用本地?cái)z像頭掃描并識(shí)別二維碼

    最近做的項(xiàng)目有個(gè)需求是在手機(jī)端打開頁面,登錄之后能在手機(jī)上掃描二維碼并根據(jù)掃描的結(jié)果去查詢班級(jí)情況。別的功能就不說了,移動(dòng)端掃描二維碼這個(gè)以前沒做過,所以在這里記錄一下。 項(xiàng)目用到的技術(shù)棧: Vue 3 + TypeScript + Vite + jsQr,UI組件庫是 arco Design,可以根據(jù)自

    2024年02月09日
    瀏覽(28)
  • vue批量生成二維碼,打印生成的二維碼,并批量下載生成的二維碼,qrcode

    vue批量生成二維碼,打印生成的二維碼,并批量下載生成的二維碼,qrcode

    通過使用 qrcode 生成二維碼, 使用 jszip 打包批量二維碼文件, 使用 file-saver 下載打包好的zip文件, 使用 vue-print-nb 打印生成的二維碼 配置項(xiàng): width 二維碼寬度 height 二維碼高度 errorCorrectionLevel 二維碼糾錯(cuò)級(jí)別,指二維碼被遮擋可以掃出結(jié)果的區(qū)域比例 color: 7. 打印生成的二

    2024年02月01日
    瀏覽(31)
  • vue:生成二維碼 qrcode、vue-qr(二維碼中間可帶logo)

    vue:生成二維碼 qrcode、vue-qr(二維碼中間可帶logo)

    一、方法一 qrcode qrcode - npm 1.1、安裝 yarn add qrcode 1.2、頁面引入 1.3、方法里邊使用 ?二維碼url: ???????? 1.4、options 名稱 類型 默認(rèn)值 說明 errorCorrectionLevel String M 錯(cuò)誤處理級(jí)別??蛇x值: low ,? medium ,? quartile ,? high ?or? L ,? M ,? Q ,? H maskPattern Number 可選值: 0 ,?

    2023年04月12日
    瀏覽(30)
  • 前端vue項(xiàng)目:生成二維碼,掃二維碼跳轉(zhuǎn)到相應(yīng)頁面

    Vue2項(xiàng)目 1、安裝依賴::npm i?arale-qrcode --save 2、引入:import AraleQRCode from \\\"arale-qrcode\\\"; 接下來讓我們純前端生成一個(gè)二維碼 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【PS:親測(cè)有效,大家可以放心使用 CV 大法哈? !】 HTML JS 需求中遇到的情況,也是百度了很久參考了很多大佬的文章

    2024年02月07日
    瀏覽(92)
  • vue生成二維碼

    本次將教大家如何只通過vue前端快速的生成二維碼 安裝依賴 通過命令 安裝二維碼生成的依賴包到我們的項(xiàng)目中 引入 在自己需要構(gòu)建生成的頁面進(jìn)行引入 構(gòu)建通用方法 ps: 其中里面的參數(shù) classId 為html的class標(biāo)簽名稱 value 為需要將哪些數(shù)據(jù)進(jìn)行構(gòu)建生成二維碼 通過該方法,我

    2024年02月12日
    瀏覽(20)
  • vue3-pc端生成微信二維碼、掃碼支付監(jiān)聽支付回調(diào)(WebSocket)功能實(shí)現(xiàn)

    vue3-pc端生成微信二維碼、掃碼支付監(jiān)聽支付回調(diào)(WebSocket)功能實(shí)現(xiàn)

    項(xiàng)目場(chǎng)景:后臺(tái)系統(tǒng)中采購訂單列表需要支持微信掃描支付功能,支付成功需要返回到訂單列表。 調(diào)用接口接收后端返回?cái)?shù)據(jù), npm install qrcode?--save 安裝插件,處理返回?cái)?shù)據(jù)生成二維碼。 1. 后端接口返回?cái)?shù)據(jù)如下: 2. 前端代碼如下: 3. 效果圖如下: 生成二維碼功能到這就完

    2024年02月12日
    瀏覽(185)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包