Next.js Script 组件怎么用?

文章导读
Previous Quiz Next Next.js 中的 <Script> 组件类似于 HTML 中的 <script> 标签,它可用于在页面中引入外部脚本。本章将介绍 Next.js 中的 <Script> 组件、它的 pro
📋 目录
  1. Next.js 中的 Script 组件
  2. Script 组件的 Props
  3. Script 组件的 src Prop
  4. Script 组件的 strategy Prop
  5. Script 组件的 onLoad Prop
  6. Script 组件的 onError Prop
  7. Script 组件的 onReady Prop
A A

Next.js - Script 组件



Previous
Quiz
Next

Next.js 中的 <Script> 组件类似于 HTML 中的 <script> 标签,它可用于在页面中引入外部脚本。本章将介绍 Next.js 中的 <Script> 组件、它的 props,以及如何使用它在页面中引入外部脚本。

Next.js 中的 Script 组件

Next.js 中的 <Script> 组件用于在页面中引入外部脚本。它类似于 HTML 中的 <script> 标签。<Script> 组件用于引入外部 JavaScript 文件,可以用于从 CDN、第三方库或其他任何外部源引入脚本。

语法

以下代码展示了 Next.js 中 <Script> 组件的基本用法语法。

import Script from 'next/script' // 导入库

export default function Home() {
    return (
        <div>
            <h2>Hello, Next.js!</h2>
            <Script src="link/to/script.js">
            </Script>
        </div>
    );
}

Script 组件的 Props

以下 props 可以传递给 <Script> 组件:

Props 描述 状态
src src prop 用于提供要包含在页面中的外部脚本文件的 URL。 Required
strategy strategy prop 用于定义脚本的加载策略。 Optional
onLoad onLoad prop 用于定义当脚本加载完成时调用的回调函数。 Optional
onError onError prop 用于定义当脚本加载失败时调用的回调函数。 Optional
onReady onReady prop 用于定义当脚本准备好执行时调用的回调函数。 Optional

Script 组件的 src Prop

src prop 用于提供要包含在页面中的外部脚本文件的 URL。这可以是绝对外部 URL 或内部路径。除非使用内联脚本,否则 src 属性是必需的。以下代码展示了在 <Script> 标签中使用 src prop 的用法。

// 导入库
import Script from 'next/script'

// 引入外部脚本
export default function Page() {
    return (
        // 引入外部脚本
        <Script src="link/to/script.js">
        </Script>
    );
}

Script 组件的 strategy Prop

strategy prop 用于定义脚本的加载策略。strategy prop 可以有以下值:

  • afterInteractive:页面渲染完成并变得可交互后加载脚本。
  • lazyOnload:页面加载完成后延迟加载脚本。
  • beforeInteractive:页面开始渲染前加载脚本。
  • worker:将脚本作为 Web Worker 加载。

strategy prop 的默认值是 afterInteractive。以下代码展示了在 <Script> 标签中使用 strategy prop 的用法。

// 导入库
import Script from 'next/script'

// 使用 strategy 引入外部脚本
export default function Page() {
    return (
        // 使用 strategy 引入外部脚本
        <Script src="link/to/script.js" strategy="lazyOnload">
        </Script>
    );
}

Script 组件的 onLoad Prop

onLoad prop 用于定义一个回调函数,当脚本加载完成时该函数将被调用。onLoad prop 是可选的。以下代码展示了在 <Script> 标签中使用 onLoad prop 的用法。

// Import the library
import Script from 'next/script'

// Include external script with onLoad
export default function Page() {
    return (
        // Include external script with onLoad
        <Script src="link/to/script.js" 
            onLoad={() => console.log('Script loaded successfully')}>
        </Script>
    );
}

Script 组件的 onError Prop

onError prop 用于定义一个回调函数,当脚本加载失败时该函数将被调用。onError prop 是可选的。以下代码展示了在 <Script> 标签中使用 onError prop 的用法。

// Import the library
import Script from 'next/script'

// Include external script with onError
export default function Page() {
    return (
        // Include external script with onError
        <Script src="link/to/script.js" 
            onError={() => console.log('Script failed to load')}>
        </Script>
    );
}

Script 组件的 onReady Prop

onReady prop 用于定义一个回调函数,当脚本准备好执行时该函数将被调用。onReady prop 是可选的。

注意: onReady 目前尚不支持 Server Components,只能用于 Client Components。

以下代码展示了在 <Script> 标签中使用 onReady prop 的用法。

// Import the library
import Script from 'next/script'

// Include external script with onReady

export default function Page() {
    return (
        // Include external script with onReady
        <Script src="link/to/script.js" 
            onReady={() => console.log('Script is ready')}>
        </Script>
    );
}