Next.js提供了 next/script
组件来更加方便的管理和加载外部脚本。
它包含了:
- 异步加载外部脚本的能力,从而避免阻塞页面渲染。
- 脚本的优化,包括 preloading 和 prebrowsing。
- 支持内联脚本和外联脚本。
- 支持多种异步加载方式,例如async, defer 等。
使用 next/script
组件的例子:
import Script from 'next/script'
function MyComponent() {
return (
<>
<h1>Hello World</h1>
<Script
src="https://www.google-analytics.com/analytics.js"
strategy="afterInteractive"
/>
</>
)
}
export default MyComponent
在上面的例子中,我们展示了如何在 Next.js 应用程序中使用 next/script
组件来加载 Google Analytics。
我们可以看到,src
属性指定了要加载的脚本的 URL,并且我们使用 strategy
属性指定了在何时加载脚本。
Next.js 提供了四种策略:
- beforeInteractive:在页面的 DOMContentLoaded 事件之前加载。
- afterInteractive:在页面的 DOMContentLoaded 事件之后,和其他 async 或 defer 的脚本之前加载。
- lazyOnload:在页面的 onload 事件之前加载。
- lazy:在页面的 onload 事件之后加载。
这里也可以使用多个 next/script
组件来加载多个脚本。注意,这些组件按照添加的顺序加载。
import Script from 'next/script'
function MyComponent() {
return (
<>
<h1>Hello World</h1>
<Script
src="https://www.google-analytics.com/analytics.js"
strategy="afterInteractive"
/>
<Script
src="https://www.google.com/recaptcha/api.js"
strategy="afterInteractive"
/>
</>
)
}
export default MyComponent
总之,使用 next/script
可以方便地管理和加载外部 JavaScript 文件,但也要注意不要过度使用它以保持网站的性能。