在vue中生成二维码(引入工具Qrious/Qrcode或iframe直接生成)

目录

Qrious

在vue中引入Qrious

生成二维码

Qrcode

在vue中引入Qrcode

生成二维码

利用iframe生成二维码


Qrious

qrious是一款基于HTML5 Canvas的纯JS二维码生成插件。通过qrious.js可以快速生成各种二维码,你可以控制二维码的尺寸颜色,还可以将生成的二维码进行Base64编码。

官网:GitHub - neocotic/qrious: Pure JavaScript library for QR code generation using canvas

在vue中引入Qrious

在需要生成二维码的组件中引入,通过npm install --save qrious安装。

// npm install --save qrious
import QRious from "qrious";

生成二维码

利用canvas画布元素呈现二维码。

<canvas id="qr"></canvas>
// 生成微信支付二维码
orderPayApi
    .getWechatPayQR(订单id等,看后端接口需求)
    .then((res) => {
        const qr = new QRious({
            element: document.getElementById("qr"),   // canvas元素
            value: res,   // 需要编码为二维码的值
        });
        qr.size = 180;  // 二维码尺寸
    })
    .catch((err) => {
        this.messageBox(err.message, "error");
    });

Qrcode

QRCode.js 是一个用于生成二维码的 JavaScript 库。主要是通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成,不依赖任何库。

在vue中引入Qrcode

在需要生成二维码的组件中引入qrcode,在main.js(全局)中引入组件,通过npm install --save qrcode安装。

// npm install --save qrcode

import QRCode from "qrcode"; // 在组件中引入

import QRcode from './components/QRcode'  // 全局引入
Vue.use(QRcode);

生成二维码

引用了:https://www.cnblogs.com/wwyxjjz/p/16922490.html

<canvas id="QRCode_header" style="width: 280px; height: 280px"></canvas>

准备好二维码url,各种属性,画布元素以及错误后处理方法,然后用QRCode.toCanvas()包裹以上元素。

<script>
import QRCode from "qrcode"; //引入生成二维码插件
export default {
  props: [""],
  data() {
    return {
      qrUrl: "",
    };
  },
  watch: {},
  mounted() {
    this.getQRCode();
  },
  created() {},
  methods: {
    getQRCode() {  

    //生成的二维码为URL地址js
    this.qrUrl= "https://152.136.245.230:7784/play/index.html?uid=1&zid=1&roomid=53";
      let opts = {
        errorCorrectionLevel: "H", //容错级别
        type: "image/png", //生成的二维码类型
        quality: 0.3, //二维码质量
        margin: 0, //二维码留白边距
        width: 280, //宽
        height: 280, //高
        text: "http://www.xxx.com", //二维码内容
        color: {
          dark: "#333333", //前景色
          light: "#fff", //背景色
        },
      };
      
      let msg = document.getElementById("QRCode_header");
      // 将获取到的数据(val)画到msg(canvas)上
      QRCode.toCanvas(msg, this.qrUrl, opts, function (error) {
        if (error) {
          console.log("二维码加载失败", error);
          this.$message.error("二维码加载失败");
        }
      });
    },
  },
};
</script>

利用iframe生成二维码

创建iframe元素,以呈现二维码。

// 支付宝支付为例
<iframe
    id="alipayFrame"
    style="width: 190px; height: 190px"
></iframe>
// 生成支付宝支付二维码
orderPayApi
    .getAliPayQR(订单id等,看后端接口需求)
    .then((res) => {
        let o = document.getElementById("alipayFrame");  // 用来呈现二维码的元素
        // 创建二维码对象
        let ed = document.all
            ? o.contentWindow.document
            : o.contentDocument;
        ed.open();
        ed.write(res);  // 写入
        ed.close();
        ed.contentEditable = true;  // 开启该元素的编辑模式
        ed.designMode = "on";  // 控制整个文档是否可编辑。有效值为 "on" 和 "off" 。根据规范,该属性默认为 "off" 。
    })
    .catch((err) => {
        this.messageBox(err.message, "error");
    });

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Vue使用qrcode生成二维码,你可以按照以下步骤进行操作: 1. 首先,你需要安装qrcode插件,你可以使用npm命令来安装:npm i qrcode -S 。 2. 然后,在你的Vue组件引入qrcode插件:import QRCode from 'qrcode' 。 3. 接下来,在你的Vue组件的template添加一个img标签,用于显示生成的二维码图片。例如: ``` <template> <div> <img :src="QRImgUrl" /> </div> </template> ``` 4. 在Vue组件的script,使用QRCode生成二维码的方法。首先,你需要定义一个data属性QRImgUrl用于存储生成的二维码图片的URL。然后,在created钩子函数调用getQRcode方法来生成二维码。getQRcode方法使用QRCode.toDataURL来生成二维码图片的DataURL,并将生成的URL赋值给QRImgUrl。例如: ``` <script> import QRCode from 'qrcode' export default { data() { return { QRImgUrl: '', QRlink:'www.xxx.com' } }, created() { this.getQRcode() }, methods: { getQRcode(){ QRCode.toDataURL(this.QRlink, { errorCorrectionLevel: 'L', margin: 2, width: 128 }, (err, url) => { if (err) throw err this.QRImgUrl = url }) } } } </script> ``` 这样,当你的Vue组件被创建时,getQRcode方法会被调用,生成二维码并将URL赋值给QRImgUrl,从而显示在页面上 。 如果你想对生成的二维码进行更详细的配置,你可以参考以下步骤: 1. 在getQRcode方法定义一个opts对象,用于配置生成二维码的各种参数,比如容错级别、二维码类型、二维码质量、留白边距等 。 2. 修改QRCode.toDataURL方法的第二个参数为opts,这样可以根据opts的配置生成更加符合你需求的二维码 。 例如,你可以按照以下方式配置opts对象: ```javascript let opts = { errorCorrectionLevel: "L",//容错级别 type: "image/png",//生成的二维码类型 quality: 0.3,//二维码质量 margin: 5,//二维码留白边距 width: 128,//宽 height: 128,//高 text: "http://www.xxx.com",//二维码内容 color: { dark: "#666666",//前景色 light: "#fff"//背景色 } }; ``` 然后,将opts作为QRCode.toDataURL方法的第二个参数传入: ```javascript QRCode.toDataURL(this.QRlink, opts, (err, url) => { if (err) throw err this.QRImgUrl = url }) ``` 这样,你就可以根据opts的配置生成定制化的二维码 。 综上所述,你可以按照以上步骤在Vue使用qrcode生成二维码,并根据需要进行详细的配置 。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值