最常用稳定方式是使用第三方库而非自研算法;qrcode.js最轻量无依赖,支持多端与多种导出格式;qr-code-generator适合深度控制场景;框架专用库如react-qr-code开箱即用;需注意中文编码、长度限制、高清屏适配及扫码失败等避坑点。
JavaScript 生成二维码,最常用、最稳定的方式是使用成熟的第三方库,而不是自己从零实现 QR 编码算法。目前社区主流的库轻量、易用、支持浏览器和 Node.js,并且能灵活控制样式、容错等级、导出格式(Canvas、SVG、Data URL 等)。
这是最轻量、最常用的纯 JS 二维码生成库,仅一个文件(qrcode.min.js),不依赖 jQuery 或其他框架,支持浏览器和 Node.js。
引入,调用 QRCode.toCanvas() 或 QRCode.toDataURL() 即可生成npm install qrcode 安装,支持生成 PNG、SVG、UTF8 字符串等格式colorDark/colorLight)这是一个无依赖、纯算法实现的库(源自日本作者的 C 版本移植),代码清晰、体积小(约 15KB),适合嵌
入式或对包大小敏感的场景。
如果你用 React 或 Vue,官方生态里有维护良好的组件封装,省去手动挂载和更新逻辑。
react-qr-code:基于 SVG 渲染,响应式友好,支持动态 props 更新,无外部依赖vue-qrcode(Vue 2/3 均有对应版本):支持 v-model 绑定、插槽自定义背景、内置下载按钮生成二维码不是“输字符串就完事”,实际开发中常遇到这些情况:
encodeURIComponent(str) 包裹再生成)window.devicePixelRatio,需手动缩放 canvas 的 width/height 并用 CSS 缩放显示尺寸