「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Next.js アプリのパフォーマンスを最適化する実証済みのヒント ⚡️

Next.js アプリのパフォーマンスを最適化する実証済みのヒント ⚡️

2024 年 11 月 8 日に公開
ブラウズ:386

Proven Tips to Optimize Performance in Your Next.js App ⚡️

Web アプリケーションのパフォーマンスを最適化することは、高速でスムーズなユーザー エクスペリエンスを提供するために非常に重要です。

強力な React フレームワークである Next.js を使用すると、多くの組み込み機能を活用してアプリの速度と効率を向上させることができます。

Next.js アプリから最高のパフォーマンスを引き出すための 10 の重要な戦略を次に示します:


1. 必要な JavaScript と CSS のみをロードします

不要なファイルでアプリが肥大化するのを避けるために、必要な JavaScript と CSS のみをロードしていることを確認してください。

Next.js はデフォルトで JavaScript を自動的にコード分割します。つまり、各ページはその機能に必要な JS のみをロードします。

同様に、大きな CSS ファイルをグローバルにインポートすることは避けてください。モジュラーまたはスコープ指定された CSS を使用して、各ページに読み込まれる未使用の CSS の量を減らしてください。

実装方法:

  • 必要に応じてコンポーネントを動的にインポートします。
  • CSS モジュールのインポートのスコープを特定のコンポーネントに保ちます。
import styles from './button.module.css'; // CSS module

const Button = () => {
  return ;
};

2. 依存関係の遅延読み込み

遅延読み込みは、読み込み時間を改善するための強力なテクニックです。これにより、大規模なコンポーネントやそれほど重要ではないコンポーネントが、必要な場合にのみロードされるようになります。

これにより、初期バンドル サイズが削減され、ページの最初の意味のあるレンダリングが高速化されます。

実装方法:

Next.js は、必須ではないコンポーネントの遅延読み込みのための動的インポートをサポートしています。

import dynamic from 'next/dynamic';

const HeavyComponent = dynamic(() => import('./HeavyComponent'), {
  ssr: false,
});

export default function Home() {
  return ;
}

3. Next.js のコンポーネントを使用する

Next.js は、組み込みの コンポーネントを提供し、さまざまな画面サイズや形式に合わせて画像を自動的に最適化します。

このコンポーネントにより、画像が遅延読み込みされ、利用可能な場合には WebP などの最新の形式で提供されるようになり、パフォーマンスが大幅に向上します。

実装方法:

import Image from 'next/image';

export default function Home() {
  return (
    An optimized image
  );
}

4. JavaScript よりも CSS を優先する

可能な限り、アニメーションとトランジションには JavaScript ではなく CSS を使用してください。

CSS アニメーションはハードウェア アクセラレーションを活用できるため、一般にパフォーマンスが高くなりますが、JavaScript ベースのアニメーションはジャンクやパフォーマンスのボトルネックを引き起こす可能性があります。

例:

単純なフェードイン効果に JavaScript を使用する代わりに、CSS トランジションを使用します。

.fade-in {
  opacity: 0;
  transition: opacity 0.5s ease-in;
}

.fade-in-visible {
  opacity: 1;
}

5. 最初にローダーを表示しないようにする

スピナーやスケルトン画面の読み込みは、ユーザーに進歩を感じさせることができますが、アプリが遅いことを示す可能性もあります。

最初にローダーを表示するのではなく、コンテンツを迅速かつ段階的に読み込むようにアプリを最適化することに重点を置きます。

実装方法:

  • サーバー側レンダリング (SSR) または静的サイト生成 (SSG) を使用して、コンテンツを事前に読み込みます。
  • メイン コンテンツがレンダリングされた後に、ページの重要性の低い部分を遅延読み込みします。

6. Next.js フォント最適化を使用する

フォントを適切に処理しないと、読み込み時間が遅くなる可能性があります。 Next.js にはフォント最適化が組み込まれており、アプリに最適なフォント読み込み戦略を自動的に選択してパフォーマンスを向上させます。

実装方法:

組み込みの Google Fonts 統合を使用して、最適なパフォーマンスでフォントを読み込みます。

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

const inter = Inter({ subsets: ['latin'] });

export default function Home() {
  return 
Hello, world!
; }

7. スクリプトの最適化

必要な場合にのみ外部スクリプトをロードします。スクリプトがアプリ全体ではなく特定のページに必須である場合は、スクリプトをグローバルにロードしないようにします。

Next.js を使用すると、 コンポーネントを使用してスクリプトをロードする方法とタイミングを制御できます。

実装方法:

import Script from 'next/script';

export default function Home() {
  return (
    
      >
  );
}

最適化戦略:

  • 必須ではないスクリプトには、strategy="lazyOnload" を使用します。
  • ユーザー操作の前に必要な重要なスクリプトには、strategy="beforeInteractive" を使用します。

8. 未使用のパッケージを削除する

プロジェクトが進化するにつれて、未使用の依存関係が蓄積され、バンドルが肥大化する可能性があります。

depcheck などのツールを使用して、未使用のパッケージを定期的にチェックして削除します。

実装方法:

プロジェクトで depcheck を実行して、未使用の依存関係を見つけて削除します。

npx depcheck

9. 現在のバンドル サイズを確認する

パフォーマンスの低下を防ぐために、バンドルのサイズに常に注意することが重要です。

@next/bundle-analyzer ツールを使用すると、バンドル内の各モジュールのサイズを視覚化し、大規模な依存関係の特定と最適化が容易になります。


10. サーバーコンポーネントの使用

Next.js 13 ではサーバー コンポーネントが導入されており、サーバー上でページの一部をレンダリングし、最小限の JavaScript のみをクライアントに送信できるようになります。

これにより、クライアント側の JavaScript の量が大幅に削減され、パフォーマンスが向上します。


結論

Next.js アプリのパフォーマンスの最適化は継続的なプロセスですが、これらのベスト プラクティスに従うことで、読み込み時間を大幅に短縮し、ユーザー エクスペリエンスを向上させることができます。

これらの戦略を実装して、アプリが最初から高速で応答性が高く、効率的であることを確認してください。


ハッピーコーディング!

リリースステートメント この記事は次の場所に転載されています: https://dev.to/alisamir/proven-tips-to-optimize-performance-in-your-nextjs-app-lpc?1 侵害がある場合は、[email protected] までご連絡ください。それを削除するには
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3