一、二维码生成与展示

1.1 选择合适的二维码生成库

1.2 安装与引入

首先,通过npm安装qrcode.vue

npm install qrcode.vue --save

然后在Vue组件中引入:

import QRCode from 'qrcode.vue';

1.3 创建二维码组件

<template>
  <div>
    <qrcode-vue :value="value" :size="size"></qrcode-vue>
  </div>
</template>

<script>
import QRCodeVue from 'qrcode.vue';

export default {
  components: { QRCodeVue },
  data() {
    return {
      value: 'https://www.example.com', // 需要生成的链接
      size: 200 // 二维码大小
    };
  }
};
</script>

1.4 使用二维码组件

在父组件中使用QRCodeGenerator组件,并传递相应的参数:

<template>
  <div>
    <QRCodeGenerator :value="link" :size="size"></QRCodeGenerator>
  </div>
</template>

<script>
import QRCodeGenerator from './QRCodeGenerator.vue';

export default {
  components: { QRCodeGenerator },
  data() {
    return {
      link: 'https://www.example.com', // 需要生成的链接
      size: 200 // 二维码大小
    };
  }
};
</script>

二、扫码获取链接

2.1 引入扫码库

使用qrcode-reader库实现扫码功能。首先,通过npm安装该库:

npm install qrcode-reader --save

然后在Vue组件中引入:

import QRCodeReader from 'qrcode-reader';

2.2 创建扫码组件

<template>
  <div>
    <video ref="videoElement" @canplay="onCanPlay"></video>
    <div v-if="decodedData">{{ decodedData }}</div>
  </div>
</template>

<script>
import QRCodeReader from 'qrcode-reader';

export default {
  data() {
    return {
      decodedData: null,
      reader: null
    };
  },
  mounted() {
    this.reader = new QRCodeReader();
    this.reader.decodeFromInput(this.$refs.videoElement, this.onDecode);
  },
  methods: {
    onCanPlay() {
      this.reader.start();
    },
    onDecode(data) {
      this.decodedData = data;
      this.reader.stop();
    }
  }
};
</script>

2.3 使用扫码组件

在父组件中使用QRCodeScanner组件:

<template>
  <div>
    <QRCodeScanner @decoded="handleDecode"></QRCodeScanner>
  </div>
</template>

<script>
import QRCodeScanner from './QRCodeScanner.vue';

export default {
  components: { QRCodeScanner },
  methods: {
    handleDecode(data) {
      console.log('Decoded data:', data);
      // 处理解码后的数据
    }
  }
};
</script>

三、总结