Features
- Scan Qr Codes using a smartphone camera or webcam.
Demo
Checkout the Demo.
Install
yarn add @yudiel/react-qr-scanner
npm install @yudiel/react-qr-scanner
Usage
import {QrScanner} from '@yudiel/react-qr-scanner';
const App = () => {
return (
<QrScanner
onDecode={(result) => console.log(result)}
onError={(error) => console.log(error?.message)}
/>
);
}
| 1D product | 1D industrial | 2D |
| UPC-A | Code 39 | QR Code |
| EAN-8 | Code 128 | Data Matrix |
| EAN-13 | RSS-14 | Aztec |
| | PDF 417 |
Limitations
- Due to browser implementations the camera can only be accessed over https or localhost.
- Server side rendering won't work so only require the component when rendering in a browser environment.
API
| Properties | Types | Default Value | Description |
| constraints | MediaTrackConstraints | { facingMode: 'environment' } | Specify which camera should be used (if available). |
| containerStyle | object | none | Style object for the container element. |
| videoStyle | object | none | Style object for the video element. |
| scanDelay | number | 500 | The scan period for the QR hook. |
| videoId | string | videoId | The Id for the video element. |
| onResult | function | none | Scan event handler for result object. |
| onDecode | function | none | Scan event handler for decode value. |
| onError | function | none | Scan event handler for error object. |
| ViewFinder | component | none | ViewFinder component to rendering as overlay in the video element |
| hideCount | boolean | true | Hide the scanned count as overlay in the video element |
| stopDecoding | boolean | false | Stop the decoding process |
关于 @alexpuertasr/react-qr-scanner 的常见问题
@alexpuertasr/react-qr-scanner 是什么?
A library to scan qr codes in react.
如何安装 @alexpuertasr/react-qr-scanner?
在项目目录运行 npm install @alexpuertasr/react-qr-scanner,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^17.0.2 || ^18.0.0)、react-dom(^17.0.2 || ^18.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。
@alexpuertasr/react-qr-scanner 支持 TypeScript 吗?
支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。
@alexpuertasr/react-qr-scanner 支持 ESM 还是 CommonJS?
同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。
@alexpuertasr/react-qr-scanner 可以商用吗?
@alexpuertasr/react-qr-scanner 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。
@alexpuertasr/react-qr-scanner 的下载量有多少?
根据 npm 官方下载统计,@alexpuertasr/react-qr-scanner 在 2026/10/06 – 2026/11/04 这 30 天内被下载 6,441 次,日均约 215 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。
@alexpuertasr/react-qr-scanner 还在维护吗?
最新版本 1.2.10 发布于 2024/03/11(2 年前);至今共发布 1 个版本,其中过去 12 个月发布了 0 个;首次发布于 2024/03/11。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。