目  录

①首先创建一个vue项目

②引入qrcodejs2

③封装组件

1. 创建Vue文件

2. 定义template模板

3. 引入QRCode包

4. 进行封装

5. less控制样式

④启动项目

1. 在终端输入启动项目命令

2. 在浏览器中输入访问地址

3. 访问生成的二维码

4. 扫码进行解析


与后端用Java实现生成二维码相比,在前端用Vue生成二维码更加简单、灵活。

①首先创建一个vue项目

可以用vue-cli脚手架去生成。

②引入qrcodejs2

在终端输入以下命令:

npm install  qrcodejs2 --save

③封装组件

1. 创建Vue文件

在src/views路径下创建111.vue文件

Vue实现生成二维码

2. 定义template模板

<template>
  <body>
  <div id="qqq" >
    <div id="qrCode" ref="qrCodeDiv"></div>
  </div>
  </body>
</template>

3. 引入QRCode包

import QRCode from 'qrcodejs2';

4. 进行封装

<script>
export default {
  name: "qrCode",
  data() {
    return {}
  },
  mounted: function () {
    this.$nextTick(function () {
      this.bindQRCode();
    })
  },
  methods: {
    bindQRCode: function () {
      new QRCode(this.$refs.qrCodeDiv, {
        text: 'Vue实现生成二维码!',
        width: 200,
        height: 200,
        colorDark: "#333333", //二维码颜色
        colorLight: "#ffffff", //二维码背景色
        correctLevel: QRCode.CorrectLevel.L//容错率,L/M/H
      })
    }
  }
}
</script>

5. less控制样式

布局样式大家可以根据自己的喜好去定义,也可以用css控制样式,这里用less控制样式简单举个例子:

<style lang='less'>
#qqq {
  background-color: #111;
  width:300px;
  height:300px;
  margin: 0 auto; /*水平居中*/
  position: relative;
}
#qrCode {
  display: inline-block;
  margin: 0 auto; /*水平居中*/
  position: relative;
  top: 15%;
  img {
    width: 200px;
    height: 200px;
    background-color: #fff; //设置白色背景色
    padding: 6px; // 利用padding的特性,挤出白边
  }
}
</style>

本人是把样式也写在111.vue文件里面,也可以分开去写!

④启动项目

1. 在终端输入启动项目命令

npm run serve

成功启动项目:

Vue实现生成二维码

Vue实现生成二维码

2. 在浏览器中输入访问地址

http://localhost:8080/111

这里我们设计了路由,所以输入/111相当于输入/111.vue

可以在src/router/index.ts中添加一下代码:

const routes: Array<RouteRecordRaw> = [
{
    path: '/111',
    name: '生成二维码',
    component: () => import('../views/111.vue')
}
]

3. 访问生成的二维码

Vue实现生成二维码

4. 扫码进行解析

Vue实现生成二维码

识别图中的二维码后,可以看到显示我们自己设置的文本内容“Vue实现生成二维码!” 

发表回复