在Next.js网页中提高网站性能的11种方法
#javascript #初学者 #教程 #nextjs

在当今快速发展的数字景观中,优化网站的性能并增强用户体验对于捕获用户参与度并获得更高的搜索引擎排名至关重要。该全面的指南深入研究了为Next量身定制的基本策略和技术。JS应用程序以扩大性能并提供出色的浏览体验。让我们踏上这一旅程,以提高网站的性能和用户满意!

性能测试先决条件

使用灯塔测试网站的性能之前:

  1. 隐身模式:在无浏览器扩展的无浏览器模式下测试以确保准确的结果。

  2. 构建您的网站:运行yarn buildnpm run build构建您的next.js应用程序。

  3. 生产构建:仅测试生产构建的性能,而不是开发版本。使用yarn startnpm run start启动服务器。

1.服务器端渲染(SSR)

Leverage next.js的内置服务器端渲染(SSR)功能,以最大程度地减少第一次油漆的时间(TTFP)和丰富用户体验。 SSR在服务器上生成初始HTML,从而减少了客户端渲染时间。

2.代码分裂和懒惰加载

通过动态导入(import())将代码分为较小的单元,以按需加载组件。这种方法通过推迟非关键组件的加载来最大程度地减少初始负载时间。考虑一个博客网站,其中仅在必要时才加载评论部分或大图。

import dynamic from 'next/dynamic';

const LazyComponent = dynamic(() => import('./LazyComponent'));

function HomePage() {
  return (
    <div>
      {/* Other content */}
      <LazyComponent />
    </div>
  );
}

3.优化图像

优化现代格式(例如WebP)的图像,并使用Next.js的<Image>组件采用响应式图像。这减少了文件大小并改善了加载时间。

import Image from 'next/image';

<Image
  src="/images/my-image.webp"
  alt="An optimized image"
  width={1200}
  height={800}
  layout="responsive"
/>

4.捆绑分析

使用webpack-bundle-analyzer之类的工具来剖析捆绑包并识别重度依赖性。修剪不必要的代码并优化捆绑包,以更快地加载。

5.缩小和压缩

缩小CSS和JavaScript以消除不必要的字符。在您的服务器上启用GZIP或Brotli压缩以收缩传输尺寸。

6.减少第三方依赖性

明智地修剪第三方图书馆,确保它们与性能目标保持一致。过度依赖外部依赖性可以引入性能瓶颈。

7.监视

定期衡量灯塔,PagesPeed Insights和真实用户监视等工具的性能。跟踪进度和解决问题。

8.优化第三方脚本

使用Next.js的脚本组件来优化第三方JavaScript的加载。根据需要获取和执行脚本,避免在页面渲染中延迟。

import Script from 'next/script';

function IndexPage() {
  return (
    <div>
      <Script
        strategy="afterInteractive"
        src="https://www.googletagmanager.com/gtag/js?id=123"
      />
    </div>
  );
}

9.图像的alt文字

使用有意义的alt属性增强可访问性。这样可以确保屏幕读取器将图像的目的传达给视力受损的用户。

import Image from 'next/image';

<Image
  src="/images/my-image.webp"
  alt="An optimized image"
  width={1200}
  height={800}
  layout="responsive"
/>

10.删除未使用的依赖项

定期从项目中修剪未使用的依赖性,以最大程度地减少膨胀并提高性能。

11.使用下一字体的字体优化

Leverage next.js的内置自动WebFont优化。通过在构建时间内置字体CSS,您可以消除获取字体声明所需的额外往返。这种优化可改善第一个内容的油漆(FCP)和最大的内容涂料(LCP),这是两个关键的核心网络生命力指标。

另一种值得注意的方法是使用Next/Font,该方法会自动优化字体(包括自定义字体)并删除外部网络请求以增强隐私和性能。

import { Inter } from 'next/font/google'

// If loading a variable font, you don't need to specify the font weight
const inter = Inter({ subsets: ['latin'] })

export default function MyApp({ Component, pageProps }) {
  return (
    <main className={inter.className}>
      <Component {...pageProps} />
    </main>
  )
}

结论

通过遵守这些策略,您可以将您的下一个应用程序转换为高性能平台,使用户和搜索引擎吸引人。持续监视和完善是维护网站标准并提供无缝用户体验的关键。有关更多见解,请探索Next.js网站上的Improving your Core Web Vitals指南。

拥抱优化的旅程并见证网站性能的转变!