Cara Menggunakan Subconnect dalam Next.js untuk Menyahgandingkan Sumber Data untuk Halaman Berbeza
Subconnect ialah ciri dalam Next.js yang membolehkan anda membuat sambungan berasingan untuk halaman tertentu atau set halaman dalam aplikasi anda. Ini boleh berguna jika anda mempunyai sumber data atau API yang berbeza yang perlu diakses oleh halaman tertentu sahaja dalam apl anda.
Sebagai contoh, katakan anda mempunyai blog dengan kedua-dua artikel awam dan peribadi. Anda mungkin mahu menggunakan pangkalan data atau API yang berasingan untuk artikel peribadi, tetapi masih menggunakan pangkalan data atau API yang sama untuk artikel awam. Dengan subsambung, anda boleh membuat sambungan berasingan untuk artikel persendirian dan menggunakannya hanya apabila pengguna dilog masuk dan diberi kuasa untuk melihat artikel tersebut.
Berikut ialah contoh cara anda boleh menggunakan subsambung dalam apl Next.js:
```
// pages/api/articles.js
import { NextApiRequest, NextApiResponse } from 'next';
const Articles = () => {
// Titik akhir API ini mengembalikan semua artikel awam
return {
async get() {
const articles = await fetch('https://my-public-articles.com/api/articles');
kembalikan { data: artikel };
},
};
};
// pages/api/private-articles. js
import { NextApiRequest, NextApiResponse } from 'next';
const PrivateArticles = () => {
// Titik akhir API ini mengembalikan semua artikel peribadi
return {
async get() {
const articles = await fetch('https://my -private-articles.com/api/articles');
kembalikan { data: artikel };
},
};
};
// pages/index.js
import { useSubconnect } daripada 'next/subconnect';
const IndexPage = () => {
// Gunakan subconnect untuk mendapatkan public articles
const { data: publicArticles } = useSubconnect( Articles );
// Gunakan subconnect untuk mendapatkan artikel peribadi apabila pengguna log in
const { data: privateArticles } = useSubconnect( PrivateArticles, {
auth: true, // Hanya benarkan akses apabila pengguna dilog masuk
});
return (
{publicArticles.map((article) => (
))}
{privateArticles.map((article) => (
))}
);
};
```
Dalam contoh ini, API `Article` dan `PrivateArticles` ditakrifkan sebagai subsambungan berasingan, setiap satu dengan sumber data dan keperluan pengesahan mereka sendiri. Komponen `IndexPage` menggunakan cangkuk `useSubconnect` untuk mengambil artikel awam daripada API `Article` dan juga menggunakan cangkuk `useSubconnect` untuk mengambil artikel peribadi daripada API `PrivateArticles` apabila pengguna log masuk.
By menggunakan subsambung dengan cara ini, anda boleh mengasingkan sumber data untuk halaman yang berbeza dalam apl anda dan mengurusnya secara bebas, sambil masih boleh menggunakan API Next.js dan infrastruktur pemaparan halaman yang sama.



