


Jak używać Subconnect w Next.js do oddzielenia źródeł danych dla różnych stron
Subconnect to funkcja w Next.js, która umożliwia utworzenie osobnego połączenia dla określonej strony lub zestawu stron w aplikacji. Może to być przydatne, jeśli masz różne źródła danych lub interfejsy API, do których dostęp mają tylko określone strony Twojej aplikacji.
Załóżmy na przykład, że masz bloga zawierającego artykuły publiczne i prywatne. Możesz chcieć użyć osobnej bazy danych lub interfejsu API dla artykułów prywatnych, ale nadal używać tej samej bazy danych lub interfejsu API dla artykułów publicznych. Za pomocą podłączenia możesz utworzyć osobne połączenie dla prywatnych artykułów i używać go tylko wtedy, gdy użytkownik jest zalogowany i autoryzowany do przeglądania tych artykułów.
Oto przykład wykorzystania podpołączenia w aplikacji Next.js:
```
//pages/api/articles.js
import { NextApiRequest, NextApiResponse } from „next”;
const Artykuły = () => {
// Ten punkt końcowy interfejsu API zwraca wszystkie artykuły publiczne
return {
async get() {
const items = czekaj na fetch('https://my-public-articles.com/api/articles');
return { dane: artykuły };
},
};
};
//pages/api/private-articles. js
import { NextApiRequest, NextApiResponse } from 'next';
const PrivateArticles = () => {
// Ten punkt końcowy interfejsu API zwraca wszystkie prywatne artykuły
return {
async get() {
const artykułów = oczekuj fetch('https://my -private-articles.com/api/articles');
return { dane: artykuły };
},
};
};
//pages/index.js
import { useSubconnect } z 'next/subconnect';
const IndexPage = () => {
// Użyj połączenia podrzędnego, aby uzyskać artykuły publiczne
const { data: publicArticles } = useSubconnect( Artykuły );
// Użyj połączenia podrzędnego, aby uzyskać artykuły prywatne, gdy użytkownik jest zalogowany
const { dane: privateArticles } = useSubconnect( PrivateArticles, {
auth: true, // Zezwalaj na dostęp tylko wtedy, gdy użytkownik jest zalogowany });
return (
{publicArticles.map((article) => (
))}
{privateArticles.map((article) => (
))}
);
};
```
W tym przykładzie interfejsy API `Articles` i `PrivateArticles` są zdefiniowane jako oddzielne podpołączenia, każde z własnym źródłem danych i wymaganiami dotyczącymi uwierzytelniania. Komponent `IndexPage` używa haka `useSubconnect` do pobierania artykułów publicznych z API `Articles`, a także wykorzystuje hak `useSubconnect` do pobierania artykułów prywatnych z API `PrivateArticles`, gdy użytkownik jest zalogowany.
By korzystając w ten sposób z podpołączeń, możesz oddzielić źródła danych dla różnych stron w swojej aplikacji i zarządzać nimi niezależnie, jednocześnie mając możliwość korzystania z tego samego interfejsu API Next.js i infrastruktury renderowania stron.



