美文网首页
不可得兼?这样做,Vue框架里真的能用QRCode.js

不可得兼?这样做,Vue框架里真的能用QRCode.js

作者: 老萌新了 | 来源:发表于2020-06-18 10:23 被阅读0次

网页嵌入二维码, 已经稀松平常。前端插入二维码,通常会被推荐QRCode.js这个库。

一般情况下,这个库运行起来轻松+愉快。不过,如果网页恰好使用vue.js来布局,恐怕要犯傻了:

同一张网页,这是我在引入vue.js之前的样子:

正常显示的二维码

但是之后在引入vue.js的时候就傻了:

白茫茫一片

说明两个库之间,可能存在一些冲突。

别想了,网络上给出的教程,啥“vue中引入QRCode.js”之类,普遍都没什么效果。

换句话说,vue.js和QRcode.js,二选一。

当然了,这两个库相比之下,QRCode肯定会被放弃。毕竟它只是个二维码工具,而vue涉及网页主体,改造的成本不可同日而语。

另外,vue本身也有一个二维码工具库,就是vue-qrcode.js。简单好用,学习成本1小时左右。文档移步→vue-qrcode.js

这样,vue中使用二维码的问题,自然就解决了~

不过,如果就连这1小时也不想花,就想用QRCode.js呢?

取巧的办法也不是没有。

QRCode官方文档给出的二维码生成方式是这样的:

<div id="qrcode"></div>
<script type="text/javascript">
new QRCode(document.getElementById("qrcode"), "http://jindo.dev.naver.com/collie");
</script>

实际上,当你通过js创建QRCode以后,这个<div>下,会创建两个新的子元素:

<div id="qrcode" style="width:100px; height:100px; margin-top:15px;" title="http://jindo.dev.naver.com/collie">
<canvas width="100" height="100" style="display: none;"></canvas>
<img alt="Scan me!" src="data:image/png;base64,iVBORw0KGgoAA(图片省略了……)" style="display: block;">
</div>

看到没?img标签下,有二维码图片的真实地址。那么把这个地址本身提取出来,就可以了!

以下,是粗糙的示范:

<body>
  <input id ="QR_url" type="text" placeholder="这里输入待生成二维码地址">
  <input type="button" value="点击生成二维码" onclick ="make_QR()">
  <img id = "qr_code" src='' >
</body>

<script>
  var QR_div = document.createElement('div'); //这里生成一个虚拟DOM,让QRCode在这里执行。

  var qrcode = new QRCode(QR_div,{  
      height:120,
      width:120,
    });

  var qr_gen = document.getElementById('qr_code');

  function make_QR(){
      var temp = $("#QR_url").val();
      qrcode.makeCode(temp); //qr_code在虚拟DOM里生成二维码
      qr_gen.src = QR_div.childNodes[1].src; //这里,把虚拟DOM里的二维码图片地址提取出来,赋值给html里的图片标签
  };

</script>

这样,就算在vue框架下, QRCode也能使用了~

相关文章

  • 不可得兼?这样做,Vue框架里真的能用QRCode.js

    网页嵌入二维码, 已经稀松平常。前端插入二维码,通常会被推荐QRCode.js这个库。 一般情况下,这个库运行起来...

  • 使用vue-qriously生成二维码

    之前Vue中生成二维码的方法是Vue中使用QRcode.js 生产二维码但是后来发现使用qrcode.js存在一个...

  • 【Vue】学习vue前的几个常见问题(part2)

    1.Vue ≠ 单页面应用 Vue可以用来做单页面应用,但是不表示Vue只能用来做单页面应用。Vue完全支持传统网...

  • 1/90 什么是经济学?-《Principles of Econ

    经济学是基于这样一个事实:资源是有限的。既然资源有限,那么把它用在A处,就不能用在B处,如同鱼与熊掌不可得兼,只能...

  • 不可得兼

    鱼和熊掌不可得兼的道理,我们虽然早已听说,但却很难思虑明白。 因为当鱼和熊掌都同样诱人的时候,放弃哪一个似乎都像是...

  • 不可得兼

    容貌,气质,是多么欺骗人的东西。这本来就不应该作为爱情的基础。但人的神经似乎在感官刺激上选择了相貌气质,在精神吸引...

  • 不可得兼

    由于大家的饭卡往往有节余,除了吃饭也没有其他消费途径,每周五晚上食堂有外卖可以买,有各式水果,还有各种面点等,可是...

  • 2018-02-28

    鱼和熊掌不可得兼 ...

  • 选择

    肉身里住着灵魂 如房子里住着人 二者不可得兼时 选择 人 还是房

  • vue 2 method 的this 失效

    不能用箭头函数,剪头函数的this不指向vue 实例

网友评论

      本文标题:不可得兼?这样做,Vue框架里真的能用QRCode.js

      本文链接:https://www.haomeiwen.com/subject/pysyxktx.html