Rumah > hujung hadapan web > tutorial js > Mengoptimumkan Aplikasi Next.js untuk Prestasi: Petua dan Amalan Terbaik

Mengoptimumkan Aplikasi Next.js untuk Prestasi: Petua dan Amalan Terbaik

DDD
Lepaskan: 2024-11-19 00:33:03
asal
993 orang telah melayarinya

Optimizing Next.js Applications for Performance: Tips and Best Practices

Next.js telah menjadi salah satu rangka kerja paling popular untuk membina aplikasi React. Ciri hebatnya seperti pemaparan sisi pelayan (SSR), penjanaan tapak statik (SSG) dan laluan API menjadikannya pilihan yang bagus untuk membina aplikasi web yang pantas dan berskala. Walau bagaimanapun, seperti mana-mana rangka kerja web, pengoptimuman prestasi adalah kunci untuk menyampaikan pengalaman pengguna yang hebat. Dalam artikel ini, kami akan meneroka petua dan amalan terbaik untuk mengoptimumkan aplikasi Next.js.

1. Gunakan Penjanaan Tapak Statik (SSG) Di Mana Pun Boleh
Salah satu ciri Next.js yang paling berkuasa ialah Penjanaan Tapak Statik (SSG), yang membolehkan anda membuat pra-memaparkan halaman pada masa binaan. Ini membawa kepada masa pemuatan yang lebih pantas dan prestasi SEO yang lebih baik, kerana kandungannya disampaikan terus daripada CDN.

Bila menggunakan SSG: Sesuai untuk halaman yang tidak kerap berubah atau memerlukan data masa nyata, seperti blog atau halaman pendaratan produk.
Cara melaksanakan: Gunakan getStaticProps untuk mengambil data pada masa binaan dan pra-memaparkan halaman.

export async function getStaticProps() {
  const data = await fetch('https://api.example.com/data').then((res) => res.json());
  return { props: { data } };
}
Salin selepas log masuk
Salin selepas log masuk

2. Leverage Incremental Static Regeneration (ISR)
Untuk halaman yang memerlukan kemas kini yang kerap tetapi masih mendapat manfaat daripada penjanaan statik, Incremental Static Regeneration (ISR) membolehkan anda menjana semula halaman di latar belakang sambil menyajikan kandungan basi kepada pengguna.

Bila menggunakan ISR: Bagus untuk halaman dengan kandungan yang kerap dikemas kini tetapi tidak perlu dijana secara dinamik pada setiap permintaan (cth., artikel berita, catatan blog atau katalog produk).
Cara melaksanakan: Gunakan getStaticProps dengan pilihan pengesahan semula untuk menentukan kekerapan penjanaan semula halaman.

export async function getStaticProps() {
  const data = await fetch('https://api.example.com/data').then((res) => res.json());
  return {
    props: { data },
    revalidate: 60, // Regenerate the page every 60 seconds
  };
}
Salin selepas log masuk
Salin selepas log masuk

3. Optimumkan Imej dengan Komponen Imej Next.js
Next.js mempunyai pengoptimuman imej terbina dalam dengan komponen seterusnya/imej. Ia mengoptimumkan imej secara automatik dengan mengubah saiz, memuatkan malas dan menyajikannya dalam format moden seperti WebP untuk prestasi yang lebih baik.

Cara melaksanakan: Gunakan komponen untuk memuatkan imej dengan pengoptimuman automatik.

import Image from 'next/image';

const MyComponent = () => (
  <image src="/image.jpg" alt="Mengoptimumkan Aplikasi Next.js untuk Prestasi: Petua dan Amalan Terbaik" width="{500}" height="{300}"></image>
);
Salin selepas log masuk
Salin selepas log masuk

Faedah: Ini mengurangkan saiz imej keseluruhan, meningkatkan masa pemuatan dan menyediakan saiz imej yang betul secara automatik untuk peranti yang berbeza.

4. Laksanakan Pemisahan Kod
Next.js secara automatik membahagikan kod anda kepada ketulan yang lebih kecil, tetapi anda masih boleh memanfaatkan import dinamik untuk memuatkan komponen atau pustaka hanya apabila ia diperlukan. Ini mengurangkan muatan JavaScript awal dan mempercepatkan pemuatan halaman.

Bila hendak digunakan: Untuk komponen besar atau perpustakaan pihak ketiga yang tidak diperlukan serta-merta.
Cara melaksanakan: Gunakan seterusnya/dinamik untuk memuatkan komponen secara dinamik.

export async function getStaticProps() {
  const data = await fetch('https://api.example.com/data').then((res) => res.json());
  return { props: { data } };
}
Salin selepas log masuk
Salin selepas log masuk

5. Dayakan Caching Bahagian Pelayan
Caching boleh meningkatkan prestasi aplikasi dinamik dengan ketara. Untuk halaman pemaparan sisi pelayan (SSR), respons caching boleh mengurangkan beban pelayan dan meningkatkan masa respons.

Cara melaksanakan: Gunakan pengepala caching atau penyelesaian caching seperti Vercel's Edge Functions untuk cache halaman SSR dan respons API.

export async function getStaticProps() {
  const data = await fetch('https://api.example.com/data').then((res) => res.json());
  return {
    props: { data },
    revalidate: 60, // Regenerate the page every 60 seconds
  };
}
Salin selepas log masuk
Salin selepas log masuk

6. Optimumkan Himpunan JavaScript dan CSS
Himpunan JavaScript dan CSS yang besar boleh melambatkan masa muat aplikasi anda. Next.js menyediakan beberapa cara untuk mengoptimumkan aset ini:

Gegar pokok: Next.js mengalih keluar kod yang tidak digunakan secara automatik semasa proses binaan.
Modul CSS: Gunakan Modul CSS atau komponen gaya untuk skop CSS anda dan menghalang gaya yang tidak perlu daripada dimuatkan.
Pemisahan kod: Import perpustakaan berat secara dinamik hanya apabila diperlukan, seperti yang dinyatakan sebelum ini.

7. Gunakan Prefetching untuk Navigasi Lebih Pantas
Next.js menyokong prapengambilan pautan di luar kotak, yang pramuat halaman terpaut di latar belakang sebelum pengguna mengklik padanya. Ini mempercepatkan navigasi antara halaman dengan mengurangkan masa untuk mengambil data dan memaparkan kandungan baharu.

Cara melaksanakan: Komponen dalam Next.js mendahului halaman secara automatik apabila ia berada dalam port pandangan.

import Image from 'next/image';

const MyComponent = () => (
  <image src="/image.jpg" alt="Mengoptimumkan Aplikasi Next.js untuk Prestasi: Petua dan Amalan Terbaik" width="{500}" height="{300}"></image>
);
Salin selepas log masuk
Salin selepas log masuk

8. Gunakan Web Vitals untuk Pemantauan Prestasi
Web Vitals ialah satu set metrik yang mengukur pengalaman pengguna dunia sebenar. Next.js mempunyai sokongan terbina dalam untuk memantau metrik ini, yang boleh membantu anda menjejak prestasi dan mengenal pasti bahagian untuk penambahbaikan.

Cara melaksanakan: Gunakan Next.js's next/web-vitals untuk memantau metrik prestasi seperti LCP (Large Contentful Paint), FID (First Input Delay) dan CLS (Cumulative Layout Shift).

import dynamic from 'next/dynamic';

const DynamicComponent = dynamic(() => import('../components/HeavyComponent'));

const Page = () => (
  <div>
    <h1>Welcome to the page!</h1>
    <dynamiccomponent></dynamiccomponent>
  </div>
);
Salin selepas log masuk

9. Minimumkan Skrip Pihak Ketiga
Skrip pihak ketiga boleh melambatkan aplikasi anda, terutamanya jika ia tidak dioptimumkan. Pastikan untuk:

Malas memuatkan skrip pihak ketiga apabila diperlukan.
Alih keluar skrip yang tidak diperlukan untuk mengurangkan jumlah JavaScript yang dimuatkan pada halaman.
Pertimbangkan alternatif seperti menggunakan kandungan statik atau API dan bukannya membenamkan skrip pihak ketiga.

10. Manfaatkan HTTP/2 dan Server Push
Jika anda mengehos aplikasi Next.js anda pada pelayan yang menyokong HTTP/2, anda boleh memanfaatkan push pelayan untuk menghantar berbilang sumber (seperti skrip dan helaian gaya) kepada klien sebelum mereka memintanya. Ini mempercepatkan pemuatan sumber kritikal.

Kesimpulan
Mengoptimumkan aplikasi Next.js untuk prestasi ialah proses berterusan yang melibatkan pelbagai strategi, daripada memanfaatkan penjanaan tapak statik kepada mengoptimumkan JavaScript dan penghantaran imej. Dengan mengikuti petua dan amalan terbaik ini, anda boleh meningkatkan kelajuan, kecekapan dan pengalaman pengguna aplikasi web anda dengan ketara. Uji dan pantau metrik prestasi secara kerap untuk memastikan apl anda kekal pantas dan responsif.

Atas ialah kandungan terperinci Mengoptimumkan Aplikasi Next.js untuk Prestasi: Petua dan Amalan Terbaik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan