当前位置:首页 > 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实现浮标

Vue 实现浮动按钮(浮标) 使用 Vue 实现浮动按钮可以通过多种方式完成,以下是几种常见的方法: 使用 CSS 定位和 Vue 组件 创建 Vue 组件并配合 CSS 固定定位实现浮动按钮:…

vue实现滚屏

vue实现滚屏

实现滚屏的基本方法 在Vue中实现滚屏效果可以通过多种方式完成,常见的有原生JavaScript滚动方法、第三方库或CSS动画。以下是几种常见实现方式: 使用window.scrollTo或Elem…

vue  实现分页

vue 实现分页

实现分页的基本思路 在Vue中实现分页通常需要结合后端API返回的数据和前端的分页组件。分页的核心逻辑包括计算总页数、处理当前页码变化以及触发数据请求。 分页组件示例 使用Element UI的分页…

vue实现菜单定位

vue实现菜单定位

实现菜单定位的方法 在Vue中实现菜单定位功能,可以通过监听滚动事件或使用Intersection Observer API来判断当前显示的菜单项,并高亮对应的导航链接。以下是几种常见的实现方式:…

vue路由实现滑动

vue路由实现滑动

实现 Vue 路由滑动效果的方法 使用 Vue Router 结合 CSS 过渡动画 在 Vue Router 的路由视图组件 <router-view> 上添加过渡效果,结合 CSS 实…

vue实现特效轮播

vue实现特效轮播

Vue实现特效轮播的方法 使用Vue实现轮播效果可以通过多种方式完成,以下是几种常见的实现方法。 使用Vue和CSS动画 通过Vue的动态绑定和CSS动画结合,可以实现平滑的轮播效果。 &…