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 相关文章推荐
使用JSLint提高JS代码质量方法分享
Dec 16 Javascript
浅析Cookie中的Path与domain
Dec 18 Javascript
原生js和jQuery随意改变div属性style的名称和值
Oct 22 Javascript
javascript结合fileReader 实现上传图片
Jan 30 Javascript
javascript中innerText和innerHTML属性用法实例分析
May 13 Javascript
js事件处理程序跨浏览器解决方案
Mar 27 Javascript
express文件上传中间件Multer详解
Oct 24 Javascript
js遮罩效果制作弹出注册界面效果
Jan 25 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
May 01 Javascript
基于axios封装fetch方法及调用实例
Feb 05 Javascript
JS使用数组实现的队列功能示例
Mar 04 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
Mar 04 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
linux环境apache多端口配置虚拟主机的方法深入介绍
2013/06/09 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
PHP中echo和print的区别
2014/08/28 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
使用PHP编写发红包程序
2015/07/22 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
2016/09/11 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
js传值 判断
2006/10/26 Javascript
在Z-Blog中运行代码[html][/html](纯JS版)
2007/03/25 Javascript
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
JavaScript 中的日期和时间及表示标准介绍
2013/08/21 Javascript
js获得参数的getParameter使用示例
2014/02/26 Javascript
javascript判断chrome浏览器的方法
2014/03/26 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
2014/05/01 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
原生javascript移动端滑动banner效果
2017/03/10 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
Node.js中多进程模块Cluster的介绍与使用
2017/05/27 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
详解Python中where()函数的用法
2018/03/27 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
通过Python模块filecmp 对文件比较的实现方法
2018/06/29 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
2016/10/06 面试题
MySQL面试题
2014/01/12 面试题
计算机科学系职业生涯规划书
2014/03/08 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
出纳试用期自我鉴定范文
2014/09/16 职场文书
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书
2014年心理健康教育工作总结
2014/12/06 职场文书