Введение:
В этом руководстве мы создадим приложение для блога, используя React Query и Next.js. React Query — это мощная библиотека управления состоянием, которая упрощает выборку и кэширование данных, а Next.js обеспечивает рендеринг на стороне сервера и отличный опыт разработки. Объединив эти две технологии, мы можем создать производительное и эффективное приложение для блога, которое без проблем извлекает и отображает сообщения блога.
Предпосылки:
Чтобы следовать этому руководству, вы должны иметь базовое представление о React и Next.js. Также полезно иметь некоторые знания об API и асинхронной выборке данных с помощью Axios.
Шаг 1. Настройте новый проект Next.js
Начните с создания нового проекта Next.js с помощью следующей команды:
```
npx создать-следующее-приложение реагировать-запрос-блог
cd реагировать-запрос-блог
```
Шаг 2: Установите зависимости
Затем установите React Query и Axios, выполнив следующую команду:
```
npm установить аксиомы с ответным запросом
```
Шаг 3: Создайте собственный клиент React Query
В папке `lib` создайте новый файл с именем `react-query-client.js` со следующим содержимым:
```javascript
// библиотека/реакция-запрос-клиент.js
импортировать {QueryClient, QueryClientProvider} из «ответного запроса»;
const queryClient = новый QueryClient();
функция экспорта ReactQueryProvider ({ дочерние элементы }) {
. вернуть ‹QueryClientProvider client={queryClient}›{children}‹/QueryClientProvider›;
}
```
Шаг 4. Настройте поставщика запросов React в `_app.js`
Откройте файл «_app.js», расположенный в папке «pages», и импортируйте «ReactQueryProvider» из файла «react-query-client.js». Оберните «Компонент» с «ReactQueryProvider», чтобы предоставить доступ к клиенту React Query на всех страницах:
```javascript
// страницы/_app.js
импортировать {ReactQueryProvider} из ‘../lib/react-query-client’;
функция MyApp({Компонент, pageProps}) {
. возвращаться (
. ‹ReactQueryProvider›
. ‹Компонент {…pageProps} /›
. ‹/ReactQueryProvider›
. );
}
экспорт MyApp по умолчанию;
```
Шаг 5: Создайте компонент блога и получите данные с помощью React Query
В папке «components» создайте новый файл с именем «Blog.js». Этот компонент будет отвечать за получение и отображение сообщений в блоге:
```javascript
// компоненты/Blog.js
импортировать { useQuery } из «ответного запроса»;
импортировать аксиомы из «аксиос»;
функция Блог() {
. const { data, isLoading, error } = useQuery('blogPosts', () =›
. axios.get('https://jsonplaceholder.typicode.com/posts')
. );
. если (загружается) {
. return ‹div›Загрузка…‹/div›;
. }
. если (ошибка) {
. вернуть ‹div›Ошибка: {error.message}‹/div›;
. }
. возвращаться (
. ‹див›
. ‹h1›Сообщения в блоге‹/h1›
. {data.map((сообщение) =› (
. ‹ключ div={post.id}›
. ‹h2›{post.title}‹/h2›
. ‹p›{post.body}‹/p›
. ‹/дел›
. ))}
. ‹/дел›
. );
}
экспортировать блог по умолчанию;
```
Шаг 6: Создайте домашнюю страницу с помощью компонента блога
В папке «pages» создайте новый файл с именем «index.js». Этот файл будет представлять домашнюю страницу приложения блога и отображать компонент «Блог»:
```javascript
// страницы/index.js
импортировать Блог из ‘../components/Blog’;
функция Домашняя страница () {
. вернуться ‹Блог /›;
}
экспорт домашней страницы по умолчанию;
```
Шаг 7: Запустите сервер разработки
Теперь выполните следующую команду в своем терминале, чтобы запустить сервер разработки:
``` ударить
нпм запустить разработчик
```
Посетите `http://localhost:3000` в своем браузере, и вы должны увидеть домашнюю страницу, отображающую сообщения блога, полученные с помощью React Query.
Заключение:
В этом руководстве мы узнали, как создать приложение для блога с помощью React Query и Next.js. React Query упрощает выборку и кэширование данных, позволяя нам создавать плавный и эффективный пользовательский интерфейс. Next.js предоставляет возможности рендеринга на стороне сервера, которые улучшают SEO и сокращают время начальной загрузки страницы. Объединив эти технологии, мы создали мощное приложение для блога, которое эффективно извлекает и отображает сообщения блога. Вы можете расширить это приложение, добавив такие функции, как нумерация страниц, поиск или аутентификация пользователя. Удачного кодирования!