1.安装 qrcodejs2:

npm install  qrcodejs2 --save

2.页面中引入:

import QRCode from "qrcodejs2";
 
components: {
  QRCode
}
 
3.dom结构:
<div id="qrcode" ></div>
 
4.使用:
qrcode (url) { // 生成二维码
  let that = this;
  let qrcode = new QRCode('qrcodeId', {
  width: 300,
  height: 300, // 高度
  text: url, // 二维码内容
  // render: 'canvas' , // 设置渲染方式(有两种方式 table和canvas,默认是canvas)
  // background: '#f0f', // 背景色
  // foreground: '#ff0' // 前景色
  })
}
 
5.页面调用:
//  注意: 在需要调用的地方  这样必须这样调用  否则会出现  appendChild  null  就是id为qrcode的dom获取不到 返回结果为null
this.$nextTick (function () {
this.qrcode();
})
 
正常使用流程就是这样,一切OK,大吉大利,今晚吃鸡,等等,有问题出来了 。。。
因为我们很多时候并不会像这样直接用,而是会在组件间使用,如果是组件间涉及了通信机制,就会很正常的用到Vuex进行全局状态的管理,然后呢,各位看官请接着往下看:

在计算属性中获取URL的值,然后进行qrcode渲染,结果就是:

可以看到这里被渲染了两次,

 原因:
我通过调试猜测是qrcode的渲染机制和Vue的computed计算属性有错误,
解决办法:
将vue的计算属性通过观察者模式来输出

OK,现在就可以正常渲染了:

 具体原因因为时间原因没法深入探究,我会找个空闲的机会把问题查清楚,如果有错误的地方还请大家指出,希望本文对你有所帮助!
 
 

vue中使用qrcode,遇到两次渲染的问题的更多相关文章

  1. vue中数据接收成功,页面渲染失败

    1.vue中数据接收成功,页面渲染失败.代码如下 经过查找资料修改代码为 或是 原因是: 由于 JavaScript 的限制, Vue 不能检测以下变动的数组: 当你利用索引直接设置一个项时,例如:  ...

  2. vue中使用echarts的两种方法

    在vue中使用echarts有两种方法一.第一种方法1.通过npm获取echarts npm install echarts --save 2.在vue项目中引入echarts 在 main.js 中 ...

  3. 当Vue中img的src是动态渲染时不显示问题

    最近遇见动态渲染img时,想起了当初刚开始写vue时,曾经遇见的一个小小坑. Vue中:img的src属性是动态渲染时不显示问题1.需求:展示用户头像,数据从后台获取,如果没有拿到则显示默认图片. 如 ...

  4. vue中计算小数保留两位小数

    代码

  5. router-view组件在app.vue中渲染不出来怎么办

    1.在app.vue使用router-view组件直接渲染 页面什么都没显示,可能问题出在路由配置上了,检查路由是否配置完好,路由挂载那里必须使用routes属性 2.在app.vue中router- ...

  6. vue中v-for

    在vue中我们只要操作数据,就可以渲染和更新数据,这背后的boss就是diff算法 vue和react的虚拟DOM的Diff算法大致相同,其核心是基于两个简单的假设: 1. 俩个相同组件产生类似DOM ...

  7. Vue中diff算法的理解

    Vue中diff算法的理解 diff算法用来计算出Virtual DOM中改变的部分,然后针对该部分进行DOM操作,而不用重新渲染整个页面,渲染整个DOM结构的过程中开销是很大的,需要浏览器对DOM结 ...

  8. vue中如何使用mockjs摸拟接口的各种数据

    mockjs的作用 生成模拟数据 模拟 Ajax 请求,返回模拟数据 基于 HTML 模板生成模拟数据(后续更新) 帮助编写单元测试(后续更新) Vue 中使用 mock 有两种使用方式,一种是仅编写 ...

  9. vue中scoped vs css modules

    注意:此文是默认你已经具备scoped和css modules的相关基础知识,所以不做用法上的讲解. 在vue中,我们有两种方式可以定义css作用域,一种是scoped,另一种就是css module ...

随机推荐

  1. React入门----基础篇

    React 背景介绍 React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站.做 ...

  2. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_4-3.登录检验JWT实战之封装通用方法

    笔记 3.登录检验JWT实战之封装通用方法     讲解:引入相关依赖并开发JWT工具类 1.加入相关依赖 <!-- JWT相关 -->             <dependenc ...

  3. Python统计分析可视化库seaborn(相关性图,变量分布图,箱线图等等)

    Visualization of seaborn  seaborn[1]是一个建立在matplot之上,可用于制作丰富和非常具有吸引力统计图形的Python库.Seaborn库旨在将可视化作为探索和理 ...

  4. python基于OpenCV的人脸识别系统

    想获得所有的代码,请下载(来自我的CSDN): https://download.csdn.net/download/qq_40875849/11292912 主函数: from recognitio ...

  5. CentOS8 安装 simple-scan 的方法

    CentOS8删除了很多软件包,解决的思路一般是从CentOS7或EPEL7的软件仓库中寻找,并解决依赖关系. 比如找到EPEL7中有 simple-scan 软件包,但安装时发现其又依赖 gnome ...

  6. document.documentElement.clientHeight 和 document.body.clientHeight

    document.documentElement.clientHeight 和 document.body.clientHeight 介绍 在进行一些网页效果处理的时候,经常碰到document.do ...

  7. 初学SpringBoot遇到的坑和笔记

    目录 1.日期返回给前端显示不理想问题 1.1重现 1.2原因 1.3解决 1.4结果 2.MyBatis-Plus数据库字段未找到问题 2.1重现 2.2原因 2.3解决 3.Long型雪花主键返回 ...

  8. BOF和EOF详解2

    在学生信息管理系统中有多处用到EOF和BOF,使用BOF和EOF属性可确定Recordset对象是否包含记录,或者从一个记录移动到另一个记录是否超出Recordset对象的限制. BOF和EOF他们是 ...

  9. Ruby Rails学习中:添加安全密码

    接上篇 一. 添加安全密码 我们已经为 name 和 email 字段添加了验证规则, 现在要加入用户所需的最后一个常规属性: 安全密码.每个用户都要设置一个密码(还要二次确认), 数据库中则存储经过 ...

  10. T100——接口代码记录,jsonArray和json

    {<section id="cs_t1client.description" >} #應用 a00 樣板自動產生(Version:) #+ Version..: T10 ...