Vue页面生成二维码

给定一个网址,在页面生成二维码,手机扫码后直接进入此网站。

1)安装全局的插件

npm install qrcodejs2 -S

2)组件封装

在component目录下新建一个vue文件,内容如下

<template>
    <div>
        <div id="qrcode"></div> <!-- 创建一个div,并设置id为qrcode -->
    </div>
</template>

<script>
    // 二维码
    import QRCode from 'qrcodejs2'  // 引入qrcode
    export default {
        name: 'test',
        mounted() {
            this.qrcode();
        },
        props:{
            width:{
                type:Number,
                default(){
                    return 132
                }
            },
            height:{
                type:Number,
                default(){
                    return 132
                }
            },
            // 二维码地址
            url:{
                type:String,
                default(){
                    return 'https://www.baidu.com'
                }
            }
        },
        methods: {
            qrcode() {
                let qrcode = new QRCode('qrcode', {
                    width: this.width,
                    height: this.height,
                    text: this.url, 
                    colorDark: "#000",
                    colorLight: "#fff",
                })
            },
        }
    }
</script>
<style scoped>
    #qrcode {
        display: inline-block;
    }

    #qrcode img {
        width: 132px;
        height: 132px;
        background-color: #fff;
        padding: 6px;
    }
</style>

3)使用组件

<template>
  <div>
    <div id="printMe">
      <div class="code">
        <p></p>
        <qrcode :url="url"></qrcode>
        <p>扫我去百度</p>
      </div>
    </div>
    <button v-print="'#printMe'">打印</button>
  </div>
</template> 

<script>
  import qrcode from '@/components/QrCode'
  export default {
    data() {
      return {
        url: 'http://www.baidu.com',
      }
    },
    components: {
      qrcode
    },
  }
</script>

<style scoped>
  .code {
    margin: 10px;
    text-align: center;
    width: 200px;
    height: 220px;
    border: 1px solid #000;
  }
</style>

运行后,使用手机扫一扫就会跳转到百度页面。

posted @ 2021-06-26 19:14  钟小嘿  阅读(1101)  评论(0)    收藏  举报