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 相关文章推荐
window.location.hash 属性使用说明
Mar 20 Javascript
jQuery版仿Path菜单效果
Dec 15 Javascript
Javascript中valueOf与toString区别浅析
Mar 19 Javascript
Jquery实现带动画效果的经典二级导航菜单
Mar 22 Javascript
Jquery的hover方法让鼠标经过li时背景变色
Sep 06 Javascript
JS鼠标滑过图片时切换图片实现思路
Sep 12 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
Jan 02 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
Apr 04 Javascript
遍历js中对象的属性和值的实例
Nov 21 Javascript
浅析Jquery操作select
Dec 13 Javascript
浅谈ECMAScript6新特性之let、const
Aug 02 Javascript
JS删除数组里的某个元素方法
Feb 03 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
关于手调机和数调机的选择
2021/03/02 无线电
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
php入门学习知识点六 PHP文件的读写操作代码
2011/07/14 PHP
PHP中让curl支持sock5的代码实例
2015/01/21 PHP
php中实现字符串翻转的方法
2017/02/22 PHP
js 调整select 位置的函数
2008/02/21 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
图解js图片轮播效果
2015/12/20 Javascript
jQuery实现查找链接文字替换属性的方法
2016/06/27 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
深入理解基于vue-cli的vuex配置
2017/07/24 Javascript
动手写一个angular版本的Message组件的方法
2017/12/16 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
2019/03/07 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
2019/09/17 Javascript
在Vue中获取自定义属性方法:data-id的实例
2020/09/09 Javascript
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
pandas中Timestamp类用法详解
2017/12/11 Python
Python闭包之返回函数的函数用法示例
2018/01/27 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
Python代码打开本地.mp4格式文件的方法
2019/01/03 Python
Python socket实现多对多全双工通信的方法
2019/02/13 Python
python安装scipy的方法步骤
2019/06/26 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
2019/12/19 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
Python使用pycharm导入pymysql教程
2020/09/16 Python
python 生成正态分布数据,并绘图和解析
2020/12/21 Python
手工制作的豪华英式沙发和沙发床:Willow & Hall
2019/05/03 全球购物
Linux如何压缩可执行文件
2014/03/27 面试题
求职简历的自我评价怎样写好
2013/10/07 职场文书
秋天的图画教学反思
2014/05/01 职场文书
保险公司开门红口号
2014/06/21 职场文书
2015年物资管理工作总结
2015/05/20 职场文书
大学生读书笔记大全
2015/07/01 职场文书
趣味运动会简讯
2015/07/20 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书