vue-qr

The Vue 3.x component for generating QR codes with awesome styles
623,908 872
Install
npm install vue-qr
Latest Version:5.0.3
Vue:3
Older releases:2
License:MIT
Last Updated:Feb 17, 2026
Links: GitHub  ·  npm
Maintainer: traveller

vue-qr

Version License

The Vue 3 Component for SumiMakito's Awesome-qr.js.

The only one qr code component for Vue.js you need!

Notice

  • v5.x 仅支持 Vue 3
  • Vue 2 用户请使用 v4.x: npm install vue-qr@4
  • 不支持 IE 浏览器

Examples

Try to scan these QR codes below with your smart phone.

Example 1 Example 2 Example 3 Example 4

Demo

npm run dev

Installation

npm install vue-qr --save

Usage

Global Registration

import { createApp } from 'vue'
import { VueQr, install } from 'vue-qr'

const app = createApp(App)
app.use({ install }) // or app.component('VueQr', VueQr)
app.mount('#app')

Local Registration

<script setup>
import VueQr from 'vue-qr'
</script>

<template>
  <vue-qr text="Hello world!" />
  <vue-qr :bgSrc="src" :logoSrc="src2" text="Hello world!" :size="200" />
  <vue-qr text="Hello world!" @generated="onGenerated" qid="testid" />
</template>

Event Handling

<script setup>
function onGenerated(dataUrl, id) {
  console.log(dataUrl, id)
}
</script>

<template>
  <vue-qr text="Hello world!" @generated="onGenerated" qid="testid" />
</template>

Props

Parameter Type Default Explanation
text String (required) Contents to encode
correctLevel Number 1 Correct Level 0-3
size Number 200 Width and height of the output QR code, includes margin
margin Number 20 Margin around the QR code
colorDark String '#000000' Color of data blocks
colorLight String '#FFFFFF' Color of empty space
components Object - Controls appearances of parts. See ComponentOptions
bgSrc String - Background image URL
gifBgSrc String - GIF background URL (overrides bgSrc)
backgroundColor String '#FFFFFF' Background color
backgroundDimming String 'rgba(0,0,0,0)' Color mask above background image
logoSrc String - Logo URL at center
logoScale Number 0.2 Logo size = logoScale * (size - 2 * margin)
logoMargin Number 0 White margin around logo
logoBackgroundColor String 'rgba(255,255,255,1)' Logo background color
logoCornerRadius Number 8 Logo corner radius
whiteMargin Boolean true White border around background image
dotScale Number 1 Data dots scale (0 < scale ≤ 1)
autoColor Boolean true Use dominant color of background as colorDark
binarize Boolean false Binarize the image
binarizeThreshold Number 128 Binarize threshold (0-255)
bindElement Boolean true Auto-binds generated QR to HTML element
qid String - ID for async identification

Events

Event Parameters Description
generated (dataUrl, qid) Emitted when QR code is generated

ComponentOptions

type ComponentOptions = {
  data?: { scale?: number }
  timing?: { scale?: number; protectors?: boolean }
  alignment?: { scale?: number; protectors?: boolean }
  cornerAlignment?: { scale?: number; protectors?: boolean }
}

Default:

{
  data: { scale: 1 },
  timing: { scale: 1, protectors: false },
  alignment: { scale: 1, protectors: false },
  cornerAlignment: { scale: 1, protectors: true }
}

For more details check out Awesome-qr.js

Related Packages

vue-qr-test

The Vue 2.x component of Awesome-qr.js

1,036 872
vue-qr-reader

A web component written in vue to scan QR

24,195
vue-qrcode-component

Create QR codes with a simple Vue component

262,895 123
vue-qrcode-component-v3

Create QR codes with a simple Vue component

42,152 0
vue-qr-code

vue-qr-code

11,388 2

Version History

Version Released License
5.0.3 MIT
5.0.2 MIT
5.0.1 MIT
5.0.0 MIT
4.0.9 MIT
Pre-releases (10)
Version Released License
4.0.8-beta.0 MIT
4.0.7-beta.2 MIT
4.0.7-beta.1 MIT
4.0.7-beta.0 MIT
4.0.4-beta.3 MIT