Вот несколько способов настройки Next.js с помощью клиента Apollo:
-
Установка зависимостей: начните с установки необходимых пакетов. В каталоге проекта Next.js выполните следующую команду:
npm install apollo-client apollo-link apollo-link-http apollo-cache-inmemory graphql -
Создание конфигурации клиента Apollo. Создайте файл (например,
apolloClient.js) для настройки клиента Apollo. Вот пример того, как это можно настроить:import { ApolloClient, HttpLink, InMemoryCache } from 'apollo-client'; import { setContext } from 'apollo-link-context'; const httpLink = new HttpLink({ uri: 'YOUR_GRAPHQL_API_ENDPOINT', }); const authLink = setContext((_, { headers }) => { // Add any authorization headers if required return { headers: { ...headers, Authorization: `Bearer YOUR_AUTH_TOKEN`, }, }; }); const apolloClient = new ApolloClient({ link: authLink.concat(httpLink), cache: new InMemoryCache(), }); export default apolloClient;Обязательно замените
'YOUR_GRAPHQL_API_ENDPOINT'фактической конечной точкой GraphQL API и'YOUR_AUTH_TOKEN'своим токеном авторизации, если необходимо. -
Интеграция клиента Apollo с Next.js. В приложении Next.js вы можете интегрировать клиент Apollo с помощью компонента
ApolloProvider. Оберните им корневой компонент в файлеpages/_app.js:import { ApolloProvider } from '@apollo/client'; import apolloClient from '../apolloClient'; function MyApp({ Component, pageProps }) { return ( <ApolloProvider client={apolloClient}> <Component {...pageProps} /> </ApolloProvider> ); } export default MyApp;Это делает клиент Apollo доступным во всем вашем приложении.
-
Использование клиента Apollo в компонентах. Теперь вы можете использовать клиент Apollo в своих компонентах. Вот пример того, как получить данные с помощью перехватчика
useQueryклиента Apollo:import { useQuery, gql } from '@apollo/client'; const GET_USERS = gql` query { users { id name } } `; function UsersList() { const { loading, error, data } = useQuery(GET_USERS); if (loading) return <p>Loading...</p>; if (error) return <p>Error occurred.</p>; return ( <ul> {data.users.map((user) => ( <li key={user.id}>{user.name}</li> ))} </ul> ); } export default UsersList;
Вот некоторые способы настройки Next.js с помощью клиента Apollo. Не забудьте настроить код в соответствии с вашими требованиями.