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 相关文章推荐
自己开发Dojo的建议框架
Sep 24 Javascript
用jquery ajax获取网站Alexa排名的代码
Dec 12 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
Jan 11 Javascript
基于jquery实现的自动补全功能
Mar 12 Javascript
Vue.js快速入门实例教程
Oct 15 Javascript
AngularJS 应用身份认证的技巧总结
Nov 07 Javascript
javascript动画系列之模拟滚动条
Dec 13 Javascript
微信小程序 商城开发(ecshop )简单实例
Apr 07 Javascript
Vue.js实现一个SPA登录页面的过程【推荐】
Apr 29 Javascript
基于bootstrap写的一点localStorage本地储存
Nov 21 Javascript
JS document对象简单用法完整示例
Jan 14 Javascript
js实现碰撞检测
Jan 29 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
php启动时候提示PHP startup的解决方法
2013/05/07 PHP
php curl模拟post提交数据示例
2013/12/31 PHP
php字符串操作常见问题小结
2016/10/11 PHP
一个非常实用的php文件上传类
2017/07/04 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
jquery 1.3.2 IE8中的一点点的小问题解决方法
2009/07/10 Javascript
通过DOM脚本去设置样式信息
2010/09/19 Javascript
IE与FireFox的JavaScript兼容问题解决办法
2013/12/31 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
Javascript排序算法之计数排序的实例
2014/04/05 Javascript
7个有用的jQuery代码片段分享
2015/05/19 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
javascript函数的四种调用模式
2017/01/08 Javascript
JS 实现计算器详解及实例代码(一)
2017/01/08 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
[01:02]DOTA2上海特锦赛SHOWOPEN
2016/03/25 DOTA
[原创]教女朋友学Python(一)运行环境搭建
2017/11/29 Python
python递归全排列实现方法
2018/08/18 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
django之状态保持-使用redis存储session的例子
2019/07/28 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
python Xpath语法的使用
2020/11/26 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
互动出版网:专业书籍
2017/03/21 全球购物
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
毕业自我评价范文
2013/11/17 职场文书
司仪主持词两篇
2014/03/22 职场文书
政府个人对照检查材料
2014/08/28 职场文书
校运动会广播稿300字
2014/10/07 职场文书
小型婚礼主持词
2015/06/30 职场文书
为什么node.js不适合大型项目
2021/04/28 Javascript