Rumah > hujung hadapan web > tutorial js > Mengapa Saya Perlu Mengelak Menggunakan Fetch untuk API Dalaman dalam getServerSideProps()?

Mengapa Saya Perlu Mengelak Menggunakan Fetch untuk API Dalaman dalam getServerSideProps()?

DDD
Lepaskan: 2024-11-16 18:29:03
asal
499 orang telah melayarinya

Why Should I Avoid Using Fetch for Internal APIs in getServerSideProps()?

Pengambilan API Dalaman dengan getServerSideProps dalam Next.js

Pendatang baru ke Next.js sering menghadapi dilema apabila berurusan dengan pengambilan data antara halaman atau komponen. Sebagai contoh, apabila menggunakan getServerSideProps() untuk mengambil API dalaman yang mengembalikan data pengguna, adalah wajar untuk berfikir bahawa pendekatan ini sesuai untuk tujuan SEO. Walau bagaimanapun, dokumentasi Next.js menasihatkan agar tidak menggunakan fetch() untuk memanggil laluan API dalam getServerSideProps().

Mengapa Elakkan Mengambil Laluan API dalam getServerSideProps()?

Memanggil laluan API dalaman dengan fetch() dalam getServerSideProps() adalah tidak perlu kerana kedua-duanya getServerSideProps() dan laluan API dilaksanakan pada pelayan. Permintaan tambahan ini tidak cekap dan tidak memberikan faedah tambahan.

Amalan Disyorkan

Daripada memanggil API dalaman daripada getServerSideProps(), logik harus diimport terus daripada Laluan API. Ini membolehkan getServerSideProps() berinteraksi secara langsung dengan pangkalan data, sistem fail atau sumber lain tanpa memperkenalkan panggilan API yang tidak perlu.

Contoh Refactor

Pertimbangkan laluan API yang digunakan untuk mengambil data daripada API luaran:

// pages/api/user
export default async function handler(req, res) {
  const response = await fetch(/* external API endpoint */);
  const jsonData = await response.json();
  res.status(200).json(jsonData);
}
Salin selepas log masuk

Logik ini boleh diekstrak ke dalam fungsi berasingan yang boleh digunakan dalam kedua-dua laluan API dan getServerSideProps():

// pages/api/user
export async function getData() {
  const response = await fetch(/* external API endpoint */);
  const jsonData = await response.json();
  return jsonData;
}

export default async function handler(req, res) {
  const jsonData = await getData();
  res.status(200).json(jsonData);
}
Salin selepas log masuk

Ini membolehkan fungsi getData() digunakan semula dalam getServerSideProps():

// pages/home
import { getData } from './api/user';

export async function getServerSideProps(context) {
  const jsonData = await getData();
  //...
}
Salin selepas log masuk

Oleh mengikut garis panduan ini, pembangun boleh meningkatkan prestasi dan kecekapan aplikasi Next.js mereka sambil mengekalkan faedah SEO.

Atas ialah kandungan terperinci Mengapa Saya Perlu Mengelak Menggunakan Fetch untuk API Dalaman dalam getServerSideProps()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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