useScriptTag

Tags:

一个方便在 React 中向文档添加 script 标签的 React Hook。

演示

源码
Script Loaded:
false

用法

请查看 API。

源码

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

API

const { scriptTag, load, unload } = useScriptTag(src, onLoaded, options)

源地址 Src

一个表示要加载的脚本 URL 的 string 类型。

载入完成 OnLoaded

当脚本被加载时将会调用的一个 function

选项 Options

export type ReferrerPolicy = | 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url' export interface UseScriptTagOptions { /** * 装载时是否立即加载脚本 * * @defaultValue true */ immediate?: boolean /** * 脚本是否以异步方式加载 * * @defaultValue true */ async?: boolean /** * 脚本的类型 * * @defaultValue 'text/javascript' */ type?: string /** * 是否手动控制脚本的加载 * * @defaultValue false */ manual?: boolean /** * `crossorigin` 属性的值 * * @defaultValue undefined */ crossOrigin?: 'anonymous' | 'use-credentials' /** * `referrerpolicy` 属性的值 * * @defaultValue undefined */ referrerPolicy?: ReferrerPolicy /** * 脚本是否为模块脚本 * * @defaultValue undefined */ noModule?: boolean /** * 脚本是否延迟加载 * * @defaultValue false */ defer?: boolean /** * 设置在脚本元素上的额外属性 * * @defaultValue {} */ attrs?: Record<string, string> }

返回值

export type UseScriptTagReturns = { /** * 脚本元素的 Ref */ scriptTag: MutableRefObject<HTMLScriptElement | null> /** * 加载脚本 * * 如果等待脚本加载完成,则默认为 `true` */ load: (waitForScriptLoad?: boolean) => Promise<HTMLScriptElement | boolean> /** * 卸载脚本 */ unload(): void }