当前位置:首页 > VUE

vue实现生成二维码

2026-01-12 08:38:11VUE

使用 vue-qrcode 库生成二维码

安装 vue-qrcode 库

npm install @chenfengyuan/vue-qrcode

在 Vue 组件中引入并使用

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

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

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

使用 qrcode.js 库生成二维码

安装 qrcode.js 库

vue实现生成二维码

npm install qrcode

在 Vue 组件中使用

<template>
  <div>
    <canvas ref="qrCanvas"></canvas>
  </div>
</template>

<script>
import QRCode from 'qrcode';

export default {
  mounted() {
    this.generateQR();
  },
  methods: {
    generateQR() {
      QRCode.toCanvas(this.$refs.qrCanvas, 'https://example.com', {
        width: 200
      }, (error) => {
        if (error) console.error(error);
      });
    }
  }
}
</script>

自定义二维码样式

通过 CSS 自定义二维码外观

vue实现生成二维码

<template>
  <div class="qr-container">
    <vue-qrcode :value="qrText" :size="200" class="qr-code"></vue-qrcode>
  </div>
</template>

<style>
.qr-container {
  padding: 20px;
  background: #f5f5f5;
  border-radius: 8px;
  display: inline-block;
}

.qr-code {
  border: 1px solid #ddd;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
</style>

动态生成二维码内容

实现输入内容实时生成二维码

<template>
  <div>
    <input v-model="qrText" placeholder="输入二维码内容">
    <vue-qrcode :value="qrText" :size="200"></vue-qrcode>
  </div>
</template>

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

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

下载生成的二维码

添加下载功能

<template>
  <div>
    <vue-qrcode :value="qrText" :size="200" ref="qrCode"></vue-qrcode>
    <button @click="downloadQR">下载二维码</button>
  </div>
</template>

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

export default {
  components: {
    VueQrcode
  },
  methods: {
    downloadQR() {
      const link = document.createElement('a');
      link.href = this.$refs.qrCode.$el.toDataURL('image/png');
      link.download = 'qrcode.png';
      link.click();
    }
  },
  data() {
    return {
      qrText: 'https://example.com'
    }
  }
}
</script>

二维码容错级别设置

设置不同容错级别

<template>
  <div>
    <vue-qrcode 
      :value="qrText" 
      :size="200"
      :error-correction-level="errorLevel">
    </vue-qrcode>
    <select v-model="errorLevel">
      <option value="L">L (低)</option>
      <option value="M">M (中)</option>
      <option value="Q">Q (高)</option>
      <option value="H">H (最高)</option>
    </select>
  </div>
</template>

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

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

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

相关文章

vue实现增删改

vue实现增删改

Vue 实现增删改查功能 Vue.js 是一个流行的前端框架,用于构建用户界面。以下是使用 Vue.js 实现增删改查(CRUD)功能的方法。 数据初始化 在 Vue 实例的 data 中初始化一…

vue实现图片搜索

vue实现图片搜索

Vue实现图片搜索功能 使用HTML5的File API获取图片 通过<input type="file">元素让用户选择图片文件,使用FileReader对象读取图片数据。 <t…

vue实现多人视频

vue实现多人视频

实现多人视频通话的Vue方案 使用WebRTC技术结合Vue框架可以构建多人视频通话应用。以下是核心实现方法: 技术栈选择 Vue 2/3作为前端框架 WebRTC用于实时通信 Socket.io…

vue点击实现排序

vue点击实现排序

实现点击排序的方法 在Vue中实现点击排序功能,可以通过以下几种方式完成: 使用计算属性结合排序方法 定义一个响应式数据存储排序状态,通过计算属性动态返回排序后的数组。点击事件切换排序状态。…

vue搜索过后实现分页

vue搜索过后实现分页

Vue 实现搜索后分页功能 数据绑定与搜索逻辑 在 Vue 组件中定义必要的数据属性: data() { return { searchQuery: '', currentPag…

vue实现表格多行修改

vue实现表格多行修改

实现多行编辑表格 在Vue中实现表格的多行编辑功能,可以通过以下方法完成。这里以Element UI的表格组件为例,但思路适用于其他UI库或原生实现。 数据准备 定义表格数据和编辑状态管理变量:…