Skip to content
On this page

QRCode 二维码

能够将链接转换生成二维码的组件。

基础用法

设置link属性,生成链接的二维码。

qrcode
<>
<template>
    <div>
        <kl-qrcode link="https://juejin.cn/"></kl-qrcode>
    </div>
</template>

<script lang="ts" setup></script>

<style lang="scss" scoped></style>

二维码尺寸

设置size属性,自定义二维码大小,单位为 px。设置padding属性,自定义空白区域大小。

qrcode
<>
<template>
    <div>
        <div class="btns">
            <kl-button @click="() => (size -= 10)">size sub</kl-button>
            <kl-button @click="() => (size += 10)">size add</kl-button>
            <kl-button @click="() => (padding -= 1)">padding sub</kl-button>
            <kl-button @click="() => (padding += 1)">padding add</kl-button>
        </div>
        <kl-qrcode link="https://juejin.cn/" :size="size" :padding="padding"></kl-qrcode>
    </div>
</template>

<script lang="ts" setup>
import { ref } from 'vue'
const size = ref(120)
const padding = ref(3)
</script>

<style lang="scss" scoped>
.btns {
    margin-bottom: 10px;
}
</style>

自定义颜色

通过dark-colorlight-color属性,自定义二维码颜色。

注意:仅支持十六进制颜色,例如 dark-color="red" 是不被支持的。

qrcode
qrcode
qrcode
qrcode
<>
<template>
    <div class="color-demo">
        <kl-qrcode link="https://juejin.cn/" dark-color="#3a7afe" light-color="#f3f3f3"></kl-qrcode>
        <kl-qrcode link="https://juejin.cn/" dark-color="#67c23a" light-color="#f3f3f3"></kl-qrcode>
        <kl-qrcode link="https://juejin.cn/" dark-color="#e6a23c" light-color="#f3f3f3"></kl-qrcode>
        <kl-qrcode link="https://juejin.cn/" dark-color="#f56c6c" light-color="#f3f3f3"></kl-qrcode>
    </div>
</template>

<script lang="ts" setup></script>

<style lang="scss" scoped>
.color-demo {
    display: flex;
    justify-content: space-between;
}
</style>

纠错比例

通过设置 error-level 调整不同的容错等级。

  • L(Low)容错率为 7% 左右
  • M(Medium)容错率为 15% 左右
  • Q(Quartile)容错率为 25% 左右
  • H(High)容错率为 30% 左右

qrcode
<>
<template>
    <div>
        <div class="btns">
            <kl-button @click="changeErrorLevel('L')">L</kl-button>
            <kl-button @click="changeErrorLevel('M')">M</kl-button>
            <kl-button @click="changeErrorLevel('Q')">Q</kl-button>
            <kl-button @click="changeErrorLevel('H')">H</kl-button>
        </div>
        <kl-qrcode link="https://juejin.cn/" :error-level="errorLevel"></kl-qrcode>
    </div>
</template>

<script lang="ts" setup>
import { ref } from 'vue'
const errorLevel = ref<string>('L')
const changeErrorLevel = (level: 'L' | 'M' | 'Q' | 'H') => {
    errorLevel.value = level
}
</script>

<style lang="scss" scoped>
.btns {
    margin-bottom: 10px;
}
</style>

API

属性

名称描述类型默认值必填
link扫描后的地址string
size二维码尺寸number120
padding二维码白边区域大小number3
dark-color二维码颜色string#000
light-color二维码背景色string#fff

Released under the MIT License.