useClipboard

一个 React 钩子,用于使用 Clipboard API 复制文本,在 API 不可用时回退到 document.execCommand('copy')

演示

源码
Clipboard content:

用法

请查看 API。

源码

点击下方链接跳转 GitHub 查看源代码。

API

const clipboard = useClipboard(options)

选项 Options

export type UseClipboardOptions<Source> = { /** * 启用读取剪贴板,需要请求权限 * * @defaultValue false */ read?: boolean /** * 目标复制值,直接调用 copy 方法不传任何参数时会默认复制这个最新状态值。 */ source?: Source /** * 重置 `copied` 变量状态的毫秒数 * * @defaultValue 1_500 */ copiedDuration?: number }

返回值

export interface UseClipboardReturns<HasSource> { /** * 剪贴板 API 是否受支持 */ isSupported: boolean /** * 剪贴板中的文本 */ text: string /** * 表示文本是否已复制的标志,在 `copiedDuration` 后将重置 */ copied: boolean /** * 复制文本到剪贴板 */ copy: HasSource extends true ? (text?: string) => Promise<void> : (text: string) => Promise<void> /** * 复制文本到剪贴板 */ clear(): void }