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 相关文章推荐
网页自动跳转代码收集
Sep 27 Javascript
js中substring和substr的定义和用法
May 05 Javascript
解决WordPress使用CDN后博文无法评论的错误
Dec 15 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
Oct 25 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
Nov 28 Javascript
Bootstrap下拉菜单样式
Feb 07 Javascript
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
Aug 16 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
Dec 06 jQuery
解决Jquery下拉框数据动态获取的问题
Jan 25 jQuery
关于vue中的ajax请求和axios包问题
Apr 19 Javascript
element-ui表格数据转换的示例代码
Aug 24 Javascript
JavaScript展开运算符和剩余运算符的区别详解
Feb 18 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 无线电
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
浅析php header 跳转
2013/06/17 PHP
Linux下php5.4启动脚本
2014/08/03 PHP
php几个预定义变量$_SERVER用法小结
2014/11/07 PHP
JavaScript 解析读取XML文档 实例代码
2009/07/07 Javascript
JS 事件绑定函数代码
2010/04/28 Javascript
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
js将控件隐藏的方法及display属性介绍
2013/07/04 Javascript
Query中click(),bind(),live(),delegate()的区别
2013/11/19 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
JavaScript初学者建议:不要去管浏览器兼容
2014/02/04 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
JavaScript实现点击按钮切换网页背景色的方法
2015/10/17 Javascript
jQuery表格的维护和删除操作
2017/02/03 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
微信公众平台 客服接口发消息的实现代码(Java接口开发)
2019/04/17 Javascript
vuex管理状态仓库使用详解
2020/07/29 Javascript
Vue实现圆环进度条的示例
2021/02/06 Vue.js
python中list常用操作实例详解
2015/06/03 Python
Django框架教程之正则表达式URL误区详解
2018/01/28 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
2020/05/27 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
巴西Mr. Cat在线商店:购买包包和鞋子
2019/09/08 全球购物
编写用C语言实现的求n阶阶乘问题的递归算法
2014/10/21 面试题
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
工人先进事迹材料
2014/12/26 职场文书
财产分割协议书
2016/03/22 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
Java SSH 秘钥连接mysql数据库的方法
2021/06/28 Java/Android
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技