#QRCode 在线演示
QRCode 样式演示
选择不同的样式和前端库,实时预览效果
基础样式
@veaba/qrcode-js
256 x 256 px
所有样式
加载中...
基础
加载中...
圆角
加载中...
渐变
加载中...
Logo区域
加载中...
微信绿
加载中...
抖音
加载中...
支付宝
加载中...
小红书
加载中...
赛博朋克
加载中...
复古
加载中...
极简
#样式说明
本演示展示了 @veaba/qrcode-js-shared 包提供的各种预设样式:
| 样式 | 说明 | 使用场景 |
|---|---|---|
| 基础 | 标准黑白二维码 | 通用场景,打印友好 |
| 圆角 | 带圆角的模块 | 现代 UI 设计 |
| 渐变 | 渐变色填充 | 品牌展示,营销活动 |
| Logo 区域 | 中心留空,可放置 Logo | 企业品牌推广 |
| 微信绿 | 微信风格绿色 | 微信生态相关应用 |
| 抖音 | 抖音风格渐变 | 短视频平台相关 |
| 支付宝 | 支付宝风格,带 Logo 区 | 支付相关应用 |
| 小红书 | 小红书风格红色 | 社交电商相关 |
| 赛博朋克 | 霓虹色风格 | 科技感,游戏相关 |
| 复古 | 棕色复古风格 | 文艺,怀旧主题 |
| 极简 | 灰色调简约风格 | 极简设计风格 |
#安装
@veaba/qrcode-js-shared 是内部私有包,不对外发布。请安装对应的前端包:
# 浏览器环境(推荐)
npm install @veaba/qrcode-js
# Node.js 环境
npm install @veaba/qrcode-node
# Bun 环境
npm install @veaba/qrcode-bun#快速开始
#基础用法
import { QRCodeCore, QRErrorCorrectLevel } from '@veaba/qrcode-js';
// 创建二维码
const qr = new QRCodeCore('https://github.com/veaba/qrcodes', QRErrorCorrectLevel.H);
const svg = qr.toSVG(256);
// 在浏览器中显示
document.getElementById('qrcode').innerHTML = svg;#使用预设样式
import { generateRoundedQRCode, generateGradientQRCode, generateWechatStyleQRCode } from '@veaba/qrcode-js';
// 圆角样式
const roundedSvg = generateRoundedQRCode('https://github.com/veaba/qrcodes', 256, 8);
// 渐变样式
const gradientSvg = generateGradientQRCode('https://github.com/veaba/qrcodes', 256, '#667eea', '#764ba2');
// 微信样式
const wechatSvg = generateWechatStyleQRCode('https://github.com/veaba/qrcodes', 256);#自定义样式
import { QRCodeCore, QRErrorCorrectLevel } from '@veaba/qrcode-js';
const qr = new QRCodeCore('https://github.com/veaba/qrcodes', QRErrorCorrectLevel.H);
// 自定义样式
const styledSvg = qr.toStyledSVG({
size: 256,
colorDark: '#FF2442', // 深色模块颜色
colorLight: '#ffffff', // 浅色背景颜色
borderRadius: 12, // 模块圆角
quietZone: 2, // 边距(模块数)
gradient: {
// 渐变配置
color1: '#FF00FF',
color2: '#00FFFF',
},
logoRegions: [
// Logo 区域
{ row: 8, col: 8, size: 5 },
],
});#在框架中使用
#React
import { QRCodeCore, QRErrorCorrectLevel } from '@veaba/qrcode-js';
import { useMemo } from 'react';
function QRCode({ text, size = 256, style = 'rounded' }) {
const svg = useMemo(() => {
const qr = new QRCodeCore(text, QRErrorCorrectLevel.H);
return style === 'rounded' ? qr.toStyledSVG({ size, borderRadius: 8, quietZone: 2 }) : qr.toSVG(size);
}, [text, size, style]);
return <div dangerouslySetInnerHTML={{ __html: svg }} />;
}#Vue
<template>
<div v-html="svg" />
</template>
<script setup lang="ts">
import { QRCodeCore, QRErrorCorrectLevel } from '@veaba/qrcode-js';
import { computed } from 'vue';
const props = defineProps<{
text: string;
size?: number;
}>();
const svg = computed(() => {
const qr = new QRCodeCore(props.text, QRErrorCorrectLevel.H);
return qr.toSVG(props.size || 256);
});
</script>#API 参考
#QRCodeCore
核心二维码生成类。
#构造函数
constructor(text: string, correctLevel?: QRErrorCorrectLevel)text: 二维码内容correctLevel: 纠错级别(默认QRErrorCorrectLevel.H)
#方法
| 方法 | 说明 |
|---|---|
toSVG(size?: number): string | 生成基础 SVG |
toStyledSVG(options: StyledSVGOptions): string | 生成样式化 SVG |
isDark(row: number, col: number): boolean | 检查模块是否为深色 |
getModuleCount(): number | 获取模块数量 |
#预设函数
| 函数 | 说明 |
|---|---|
generateRoundedQRCode(text, size, radius) | 圆角样式 |
generateGradientQRCode(text, size, color1, color2) | 渐变样式 |
generateQRCodeWithLogoArea(text, size, logoRatio) | Logo 区域样式 |
generateWechatStyleQRCode(text, size) | 微信样式 |
generateDouyinStyleQRCode(text, size) | 抖音样式 |
generateAlipayStyleQRCode(text, size) | 支付宝样式 |
generateXiaohongshuStyleQRCode(text, size) | 小红书样式 |
generateCyberpunkStyleQRCode(text, size) | 赛博朋克样式 |
generateRetroStyleQRCode(text, size) | 复古样式 |
generateMinimalStyleQRCode(text, size) | 极简样式 |