Последние несколько месяцев я и мой руководитель работали над веб-приложением, построенным на ReactJS и Ant Design CSS Framework. Мы представляли наши данные в виде каталогов / плиток, и это создавало своего рода бесконечную прокрутку с каждым увеличением данных. Итак, подумал о реализации просмотра страницы для данных приложения.
Муравей Дизайн
Система дизайна для продуктов корпоративного уровня. Создайте эффективный и приятный опыт работы.
Установка:
$ npm install antd
$ yarn add antd
После добавления зависимости:
импортировать {Pagination} из "antd";
Установите начальные состояния React:
elementsPerPage - количество элементов, которые вы хотите отобразить на одной странице. Массив currentPageElements предназначен для хранения элементов, отображаемых для каждой страницы, а смещение помогает выбрать эти элементы. pagesCount устанавливает общее количество страниц для отображения.
Реализация разбивки на страницы с полученными данными:
В приведенном ниже фрагменте кода мы извлекаем данные для отображения в каталоге с разбивкой на страницы. getAllElements - это асинхронная функция, которая извлекает данные из REST API и сохраняет их в состоянии allElements.
Здесь мы реализовали функцию для установки состояния pageCount, в котором хранится количество страниц для отображения, с функцией обратного вызова для установки элементов для текущей страницы.
Здесь мы реализовали функцию для вычисления элементов для текущей страницы в зависимости от elementsPerPage и состояния смещения.
Здесь, чтобы отобразить список страниц с разбивкой на страницы, мы использовали компонент antd P« agination » с необходимыми реквизитами. defaultCurrent используется для обозначения страницы по умолчанию, handlePageClick - это обработчик для установки элементы для каждой страницы (определены ниже), размер списка разбивки на страницы, всего - это количество элементов , showTotal - строка, указывающая диапазон элементов на текущей странице. pageSize - количество элементов на каждой странице. Компонент списка страниц появляется тогда и только тогда, когда нам нужно отобразить более одной страницы, как указано в приведенной выше логике.
handlePageClick - это функция-обработчик, которая вычисляет смещение текущей страницы и вызывает функцию обратного вызова setElementsForCurrentPage для установки элементов для текущей измененной страницы.
Теперь просто верните переменную состояния currentPageElements, чтобы отображать элементы как хотите, с разбивкой на страницы.
Обычно я использую компонент Карточка библиотеки antd. Вы можете использовать загрузочную карту или любой макет карты для своего дизайна.
Например:
showCatalogicData = () => { return this.state.currentPageElements.map(data => { return ( <Card key={data.id} className="card-item" style={{ width: 300 }} > <Meta title={data.Title}/> </Card> ) }); }
Вот как мы можем реализовать разбиение на страницы в React-приложении. Вы можете проверить этот репозиторий для получения полного кода. Пометьте репозиторий на предмет будущих обновлений.
Ознакомьтесь с этими ссылками, чтобы понять CSS-фреймворк Ant design.
Хлопайте, если вам понравилась эта статья.