当前位置:首页 > VUE

vue实现生成二维码

2026-03-27 06:45:28VUE

使用 vue-qrcode 库生成二维码

安装 vue-qrcode 库:

npm install @chenfengyuan/vue-qrcode

在组件中引入并使用:

<template>
  <vue-qrcode :value="qrText" :size="200"/>
</template>

<script>
import VueQrcode from '@chenfengyuan/vue-qrcode';

export default {
  components: { VueQrcode },
  data() {
    return {
      qrText: 'https://example.com'
    }
  }
}
</script>

使用 qrcode 原生库生成二维码

安装 qrcode 库:

npm install qrcode

在组件中使用:

<template>
  <img :src="qrImage" alt="QR Code">
</template>

<script>
import QRCode from 'qrcode';

export default {
  data() {
    return {
      qrImage: ''
    }
  },
  mounted() {
    QRCode.toDataURL('https://example.com')
      .then(url => {
        this.qrImage = url
      })
      .catch(err => {
        console.error(err)
      })
  }
}
</script>

自定义二维码样式

使用 qrcode 库时可以添加更多样式选项:

QRCode.toDataURL('https://example.com', {
  color: {
    dark: '#000000',  // 黑点颜色
    light: '#ffffff' // 背景颜色
  },
  width: 300,
  margin: 2,
  errorCorrectionLevel: 'H' // 纠错级别
})

下载二维码功能实现

添加下载按钮和方法:

<template>
  <img :src="qrImage" alt="QR Code">
  <button @click="downloadQR">下载二维码</button>
</template>

<script>
export default {
  methods: {
    downloadQR() {
      const link = document.createElement('a')
      link.href = this.qrImage
      link.download = 'qrcode.png'
      document.body.appendChild(link)
      link.click()
      document.body.removeChild(link)
    }
  }
}
</script>

响应式二维码尺寸

根据屏幕宽度动态调整二维码大小:

vue实现生成二维码

<template>
  <vue-qrcode 
    :value="qrText" 
    :size="qrSize"
    @click="regenerateQR"
  />
</template>

<script>
export default {
  data() {
    return {
      qrSize: Math.min(window.innerWidth, 300)
    }
  },
  methods: {
    handleResize() {
      this.qrSize = Math.min(window.innerWidth, 300)
    }
  },
  mounted() {
    window.addEventListener('resize', this.handleResize)
  },
  beforeDestroy() {
    window.removeEventListener('resize', this.handleResize)
  }
}
</script>

标签: 二维码vue
分享给朋友:

相关文章

vue实现放大效果

vue实现放大效果

使用 CSS transform 实现放大效果 在 Vue 中实现放大效果可以通过 CSS 的 transform: scale() 属性。这种方法简单高效,适合大多数交互场景。 定义一个 CSS…

vue实现逻辑

vue实现逻辑

Vue 实现逻辑的核心概念 Vue.js 是一个渐进式 JavaScript 框架,其核心逻辑围绕数据驱动和组件化开发。通过响应式系统、虚拟 DOM 和组件生命周期等机制,Vue 实现了高效的前端开发…

vue实现定时

vue实现定时

Vue 实现定时功能的方法 使用 setInterval 和 clearInterval 在 Vue 中可以通过 setInterval 和 clearInterval 实现定时功能。在组件的 mou…

vue 绑定实现

vue 绑定实现

Vue 绑定实现 Vue 提供了多种数据绑定的方式,包括文本插值、属性绑定、事件绑定、双向绑定等。以下是常见的绑定实现方法: 文本插值 使用双大括号 {{ }} 进行文本插值,将数据动态渲染到 DO…

vue实现pc

vue实现pc

Vue 实现 PC 端应用开发 Vue.js 是一个流行的前端框架,适用于构建 PC 端 Web 应用。以下是关键步骤和最佳实践: 项目初始化 使用 Vue CLI 或 Vite 创建项目:…

vue实现路径

vue实现路径

Vue 实现路径的方法 在 Vue 中实现路径管理通常涉及 Vue Router 的使用,以下是一些常见的实现方法: 安装 Vue Router 通过 npm 或 yarn 安装 Vue Route…