vue中实现动态生成二维码的方法


Posted in Javascript onFebruary 21, 2020

最近项目中有个裂变分享的需求,需要在页面中根据分享人的身份动态生成二维码图片放置在页面中,所以研究了一下这个功能的实现,同时把实现过程记录如下:

1.引入二维码生成模块

npm install qrcodejs2 --save

注意:此处安装qrcodejs2,安装依赖后可在main方法中进行全局引用设置,也可单独某个页面中进行引用设置。

2.引入使用

import QRCode from 'qrcodejs2';

备注:在main中设置全局可使用 Vue.prototype.qrCode

vue中实现动态生成二维码的方法

3.页面展示与配置

3.1 html代码

放置生成二维码图片的容器

<div id="qrCode" ref="qrCodeDiv"></div>

3.2 js代码

js代码有三种放入位置

第一种:放置在mounted生命周期函数中

mounted() {
 new QRCode(this.$refs.qrCodeDiv, {
 text: "https://www.baidu.com",
 width: 200,
 height: 200,
 colorDark: "#333333", //二维码颜色
 colorLight: "#ffffff", //二维码背景色
 correctLevel: QRCode.CorrectLevel.L //容错率,L/M/H
 });
}

第二种:放置在created生命周期函数中,但是注意一定要放在this.$nextTick的回掉函数中

created() {
 this.$nextTick(function() {
 new QRCode(this.$refs.qrCodeDiv, {
  text: "https://www.baidu.com",
  width: 200,
  height: 200,
  colorDark: "#333333", //二维码颜色
  colorLight: "#ffffff", //二维码背景色
  correctLevel: QRCode.CorrectLevel.L //容错率,L/M/H
 });
 });
},

第三种方式:放置在methods属性中的指定方法中,并且在mouted生命周期函数中调用这个方法(最好也把这个方法的调用放置在this.$nextTick的回掉函数中)

mounted: function () {
 this.$nextTick(function () {
 this.bindQRCode();
 })
},
methods: {
 bindQRCode: function () {
 new QRCode(this.$refs.qrCodeDiv, {
  text: 'https://www.baidu.com',
  width: 200,
  height: 200,
  colorDark: "#333333", //二维码颜色
  colorLight: "#ffffff", //二维码背景色
  correctLevel: QRCode.CorrectLevel.L//容错率,L/M/H
 })
 }
}

4.注意点

1.显示内容(text所指向内容)必须是UTF-8编码格式。

2.生成二维码js必须在 this.$nextTick(function(){调用})或setTimeout(() => { 调用 }, 100),是为了确保二维码容器DOM已经存在。

3.为了防止重复生成二维码,使用置空进行控制:document.getElementById("qrcode").innerHTML = "";

到此这篇关于vue中实现动态生成二维码的方法的文章就介绍到这了,更多相关vue 动态生成二维码内容请搜素三水点靠木以前的文章或下面相关文章,希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
Javascript 设计模式(二) 闭包
May 26 Javascript
禁用页面部分JavaScript方法的具体实现
Jul 31 Javascript
raphael.js绘制中国地图 地图绘制方法
Feb 12 Javascript
AngularJS基础学习笔记之指令
May 10 Javascript
AngularJS基础 ng-open 指令简单实例
Aug 02 Javascript
Bootstrap CSS使用方法
Dec 23 Javascript
Bootstrap选项卡学习笔记分享
Feb 13 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
Feb 28 Javascript
jQuery实现弹窗下底部页面禁止滑动效果
Dec 19 jQuery
Vue.js图片预览插件使用详解
Aug 27 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
Jan 08 Javascript
ant-design表单处理和常用方法及自定义验证操作
Oct 27 Javascript
JS如何把字符串转换成json
Feb 21 #Javascript
简单了解JS打开url的方法
Feb 21 #Javascript
详解vue或uni-app的跨域问题解决方案
Feb 21 #Javascript
如何基于js判断浏览器版本
Feb 20 #Javascript
微信小程序webSocket的使用方法
Feb 20 #Javascript
Javascript Worker子线程代码实例
Feb 20 #Javascript
vue中音频wavesurfer.js的使用方法
Feb 20 #Vue.js
You might like
DIY实用性框形天线
2021/03/02 无线电
使用sockets:从新闻组中获取文章(一)
2006/10/09 PHP
php表单转换textarea换行符的方法
2010/09/10 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
JS效率个人经验谈(8-15更新),加入range技巧
2007/01/09 Javascript
js内置对象 学习笔记
2011/08/01 Javascript
jquery异步跨域访问代码
2013/06/28 Javascript
form表单action提交的js部分与html部分
2014/01/07 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
详解JavaScript中Hash Map映射结构的实现
2016/05/21 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
js实现文字跑马灯效果
2017/02/23 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
基于element-ui的rules中正则表达式
2018/09/04 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
如何在Vue项目中添加接口监听遮罩
2021/01/25 Vue.js
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
Python通过paramiko远程下载Linux服务器上的文件实例
2018/12/27 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
Python如何读取、写入CSV数据
2020/07/28 Python
python 带时区的日期格式化操作
2020/10/23 Python
总结30个CSS3选择器
2017/04/13 HTML / CSS
税务专业毕业生自荐信
2013/11/10 职场文书
兼职业务员岗位职责
2014/01/01 职场文书
镇政府副镇长群众路线专题民主生活会对照检查材料
2014/09/19 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
2015年保育员个人工作总结
2015/05/13 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书