วิธีใช้การเชื่อมต่อย่อยใน Next.js เพื่อแยกแหล่งข้อมูลสำหรับเพจต่างๆ
การเชื่อมต่อย่อยเป็นคุณลักษณะใน Next.js ที่ช่วยให้คุณสามารถสร้างการเชื่อมต่อแยกต่างหากสำหรับเพจเฉพาะหรือชุดเพจภายในแอปพลิเคชันของคุณ สิ่งนี้มีประโยชน์หากคุณมีแหล่งข้อมูลหรือ API ที่แตกต่างกันซึ่งจำเป็นต้องเข้าถึงโดยบางหน้าในแอปของคุณ
ตัวอย่างเช่น สมมติว่าคุณมีบล็อกที่มีบทความทั้งสาธารณะและส่วนตัว คุณอาจต้องการใช้ฐานข้อมูลหรือ API แยกต่างหากสำหรับบทความส่วนตัว แต่ยังคงใช้ฐานข้อมูลหรือ API เดียวกันสำหรับบทความสาธารณะ ด้วยการเชื่อมต่อย่อย คุณสามารถสร้างการเชื่อมต่อแยกต่างหากสำหรับบทความส่วนตัว และใช้เฉพาะเมื่อผู้ใช้เข้าสู่ระบบและได้รับอนุญาตให้ดูบทความเหล่านั้น นี่คือตัวอย่างวิธีที่คุณอาจใช้การเชื่อมต่อย่อยในแอป Next.js:
```
// หน้า/api/articles.js
import { NextApiRequest, NextApiResponse } จาก 'next';
const Articles = () => {
// จุดสิ้นสุดของ API นี้ส่งคืนบทความสาธารณะทั้งหมด
กลับ {
async get() {
const บทความ = รอการดึงข้อมูล('https://my-public-articles.com/api/articles');
return { data: บทความ };
},
};
};
// หน้า/api/private-articles. js
import { NextApiRequest, NextApiResponse } จาก 'next';
const PrivateArticles = () => {
// จุดสิ้นสุด API นี้ส่งคืนบทความส่วนตัวทั้งหมด
return {
async get() {
const Articles = await fetch('https://my -private-articles.com/api/articles');
return { data: บทความ };
},
};
};
// หน้า/index.js
import { useSubconnect } จาก 'next/subconnect';
const IndexPage = () => {
// ใช้การเชื่อมต่อย่อยเพื่อรับบทความสาธารณะ
const { data: publicArticles } = useSubconnect( Articles );
// ใช้การเชื่อมต่อย่อยเพื่อรับบทความส่วนตัว เมื่อผู้ใช้เข้าสู่ระบบใน const { data: privateArticles } = useSubconnect( PrivateArticles, {
auth: true, // อนุญาตให้เข้าถึงเฉพาะเมื่อผู้ใช้เข้าสู่ระบบ });
return (
{publicArticles.map((article) => (
))}
{privateArticles.map((article) => (
))}
);
};
```
ในตัวอย่างนี้ API ของ `Articles` และ `PrivateArticles` ถูกกำหนดให้เป็นการเชื่อมต่อย่อยที่แยกจากกัน โดยแต่ละรายการมีแหล่งข้อมูลและข้อกำหนดการตรวจสอบสิทธิ์ของตัวเอง ส่วนประกอบ `IndexPage` ใช้ฮุก 'useSubconnect` เพื่อดึงบทความสาธารณะจาก API 'บทความ' และยังใช้ฮุก 'useSubconnect' เพื่อดึงบทความส่วนตัวจาก API 'PrivateArticles' เมื่อผู้ใช้เข้าสู่ระบบ
By การใช้การเชื่อมต่อย่อยในลักษณะนี้ จะทำให้คุณสามารถแยกแหล่งข้อมูลสำหรับเพจต่างๆ ในแอปของคุณ และจัดการแหล่งข้อมูลเหล่านั้นได้อย่างอิสระ ในขณะที่ยังคงสามารถใช้ Next.js API และโครงสร้างพื้นฐานการแสดงเพจเดียวกันได้



