Вы можете использовать библиотеку `react-infinite-scroll-component` для реализации функции подгрузки дополнительного контента при прокрутке страницы в приложении на Next.js.
Вот пример кода, который показывает, как это можно сделать:
1. Установите библиотеку `react-infinite-scroll-component`:
```bash
npm install react-infinite-scroll-component
```
2. Создайте компонент InfiniteScroll.js:
```javascript
import React, { useEffect, useState } from 'react';
import InfiniteScroll from 'react-infinite-scroll-component';
const InfiniteScrollComponent = () => {
const [data, setData] = useState([]);
const [page, setPage] = useState(1);
const fetchData = async () => {
// Выполняйте запрос для получения данных для следующей страницы
const response = await fetch(`/api/data?page=${page}`);
const newData = await response.json();
setData((prevData) => [...prevData, ...newData]);
setPage((prevPage) => prevPage + 1);
};
useEffect(() => {
fetchData();
}, []);
return (
<InfiniteScroll
dataLength={data.length}
next={fetchData}
hasMore={true}
loader={<h4>Loading...</h4>}
>
{data.map((item, index) => (
<div key={index}>{item}</div>
))}
</InfiniteScroll>
);
};
export default InfiniteScrollComponent;
```
3. Создайте API маршрут в Next.js, который будет обрабатывать запросы и возвращать данные:
```javascript
// pages/api/data.js
export default function handler(req, res) {
const { page } = req.query;
// Выполняйте необходимую логику для получения данных для запрашиваемой страницы
const data = getDataForPage(page);
res.status(200).json(data);
}
```
Теперь вы можете использовать компонент `InfiniteScrollComponent` в своем приложении, чтобы реализовать функцию подгрузки дополнительного контента при прокрутке страницы.