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 相关文章推荐
Three.js源码阅读笔记(光照部分)
Dec 27 Javascript
JS中typeof与instanceof之间的区别总结
Nov 14 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
Jun 06 Javascript
JS实现文字掉落效果的方法
May 06 Javascript
window.onload使用指南
Sep 13 Javascript
node前端开发模板引擎Jade的入门
May 11 Javascript
JavaScript实现一个带AI的井字棋游戏源码
May 21 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
Nov 01 Javascript
Angular事件之不同组件间传递数据的方法
Nov 15 Javascript
详解Vue中watch对象内属性的方法
Feb 01 Javascript
教你完全理解ReentrantLock重入锁
Jun 03 Javascript
vue prop属性传值与传引用示例
Nov 13 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
在Windows版的PHP中使用ADO
2006/10/09 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
2014/06/23 PHP
php多线程实现方法及用法实例详解
2015/10/26 PHP
PDO::setAttribute讲解
2019/01/29 PHP
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
event.currentTarget与event.target的区别介绍
2012/12/31 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
2014/09/03 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
在web中js实现类似excel的表格控件
2016/09/01 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
jquery实现图片平滑滚动详解
2017/03/22 jQuery
JS中call和apply函数用法实例分析
2018/06/20 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
2018/09/04 jQuery
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
2020/09/21 Javascript
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
解决Ubuntu pip 安装 mysql-python包出错的问题
2018/06/11 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
公认8个效率最高的爬虫框架
2020/07/28 Python
使用html5 canvas绘制圆环动效
2019/06/03 HTML / CSS
成教自我鉴定
2013/10/27 职场文书
产品促销活动策划书
2014/01/15 职场文书
生物学学生自我评价
2014/01/17 职场文书
清洁工岗位职责
2014/01/29 职场文书
签约仪式主持词
2014/03/19 职场文书
村抢险救灾方案
2014/05/09 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
2014年销售助理工作总结
2014/12/01 职场文书
2015年依法行政工作总结
2015/04/29 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
2016年国庆节新闻稿范文
2015/11/25 职场文书
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
2021/05/28 Python