Next.js是构建生产就绪的 React 应用程序的最简单和最受欢迎的方法之一。近年来,Next.js 呈指数级增长,许多公司都采用它来构建自己的应用程序。如何永久删除您的 Reddit 帐户在本文中,如何更改 Gmail 的语言设置我们将学习如何向 Next.js 应用程序添加分页。我们将讨论如何设置 Next.js 项目、如何在 Android、iPhone 和计算机上删除 TikTok 视频使用getStaticProps方法从 API 端点获取数据以及实现分页本身。
跳跃前进:
启动我们的 Next.js 项目
数据获取getStaticProps
实现Pagination组件
添加pagination helper功能
启动我们的 Next.js 项目
首先,我们将使用命令创建一个新的 Next.js应用程序。如何删除 Telegram 帐户:2 种快速方法然后,我们可以使用命令进入项目目录并运行以在开发服务器上启动项目。对于这个项目,我们将使用vanilla CSS进行样式设置,因为它更侧重于功能。npx create-next-app next-paginationcd next-paginationyarn dev or npm run dev
数据获取getStaticProps
用于实现分页的数据将来自. 将使用该函数获取数据。{JSON} Placeholder APIgetStaticProps
该getStaticPro如何更改手机或智能音箱上 Google 助理的声音ps函数始终在服务器上运行,Next.js 将在构建时使用getStaticProps. Fetch API将用于从前面提到的 API 端点获取数据:
import Head from "next/head";
import Image from "next/image";
import styles from "../styles/Home.module.css";
import Pagination from "../src/components/Pagination";
import { useState, useEffect } from "react";
import { paginate } from "../src/helpers/paginate";
export default function Home({ data }) {
console.log(data)
return (
<div className={styles.container}>
<Head>
<title>Create Next App</title>
<meta name="description" content="Generated by create next app" />
<link rel="icon" href="/favicon.ico" />
</Head>
<p>NextJS X Pagination</p>
export const getStaticProps = async () => {
const res = await fetch("https://jsonplaceholder.typicode.com/todos");
const data = await res.json();
return {
props: { data },
};
};
从 props 返回的数据将在home组件中被解构,如何访问和使用 Microsoft Office 中的剪贴板因此可以将其记录在控制台中。这将确认数据已被提取。如何在 Android 和 iOS 上创建和使用 Twitter 圈子因此,在控制台中,我们应该有一个100包含 JSON Typicode 网站中指定的对象数组的帖子:
现在,如何将您的 Spotify 帐户连接到您的 Discord我们可以在网页上呈现这些数据并查看它们在 UI 上的外观:
import Head from "next/head";
import Image from "next/image";
import styles from "../styles/Home.module.css";
export default function Home({ data }) {
return (
<div className={styles.container}>
<Head>
<title>Create Next App</title>
<meta name="description" content="Generated by create next app" />
<link rel="icon" href="/favicon.ico" />
</Head>
<p>
<strong>NextJS x Pagination</strong>
</p>
{data.map((item) => {
return <p key={item.id}>{item.title}</p>;
})}
</div>
);
}
export const getStaticProps = async () => {
const res = await fetch("https://jsonplaceholder.typicode.com/todos");
const data = await res.json();
return {
props: { data },
};
};
实现Pagination组件
对于Pagination组件实现,如何取消隐藏 Reddit 上的帖子以及隐藏它们时会发生什么我们将创建一个srcandcomponent文件夹。如何在 PC 和移动设备上管理 Gmail 通知在内部component,我们将创建一个文件,该文件将在文件中呈现:Pagination.jsindex.js
const Pagination = () => {
return (
<div>Pagination</div>
)
}
export default Pagination
渲染Pagination 的 in将有四个道具:, , , 和。如何知道您是否在 Facebook Messenger 上被屏蔽这将是我们从 API 获取的数据的长度,在本例中为:index.jsitemscurrentPagepageSizeonPageChangeitems100
将pageSize设置为,10因为我们希望从 开始分页,并且将存储在默认值为 的状态中,因为页面将从第一页开始。1-10currentPage1
这onPageChange将是一个函数来设置我们所在的当前页面,例如,从第一页移动到第二页:
import Head from "next/head";
import Image from "next/image";
import styles from "../styles/Home.module.css";
import Pagination from "../src/components/Pagination";
import { useState } from "react";
export default function Home({ data }) {
const [currentPage, setCurrentPage] = useState(1);
const pageSize = 10;
const onPageChange = (page) => {
setCurrentPage(page);
};
return (
<div className={styles.container}>
<Head>
<title>Create Next App</title>
<meta name="description" content="Generated by create next app" />
<link rel="icon" href="/favicon.ico" />
</Head>
<p>
<strong>NextJS x Pagination</strong>
</p>
{data.map((item) => {
return <p key={item.id}>{item.title}</p>;
})}
<Pagination
items={data.length} // 100
currentPage={currentPage} // 1
pageSize={pageSize} // 10
onPageChange={onPageChange}
/>
</div>
);
}
export const getStaticProps = async () => {
const res = await fetch("https://jsonplaceholder.typicode.com/todos");
const data = await res.json();
return {
props: { data },
};
};
然后,我们将解构这四个 如何在 Twitter 上查看敏感内容propsPagination并将它们用于分页实现:
import styles from "../../styles/Home.module.css";
const Pagination = ({ items, pageSize, currentPage, onPageChange }) => {
const pagesCount = Math.ceil(items / pageSize); // 100/10
if (pagesCount === 1) return null;
const pages = Array.from({ length: pagesCount }, (_, i) => i + 1);
console.log(pages)
return (
<div>
<div>Pagination</div>
</div>
);
};
export default Pagination;
将items除以pageSize并存储在pagesCount变量中。如何清除 iPhone 和 Android 上的 WhatsApp 缓存静态方法将用于根据长度创建一个新实例,即.Array.from()ArraypagesCount10
pages让我们在控制台中登录,如何清除 Android、iOS 和 Web 上的 Reddit 搜索历史记录看看我们有什么:
现在,我们可以映射并渲染其中的pages array值。如何在桌面版和移动版 Outlook 中创建共享日历将在其中实现函数的每个值都有一个元素:(1-10)anchoronClick
const Pagination = ({ items, pageSize, currentPage, onPageChange }) => {
const pagesCount = Math.ceil(items / pageSize); // 100/10
if (pagesCount === 1) return null;
const pages = Array.from({ length: pagesCount }, (_, i) => i + 1);
return (
<div>
<ul className={styles.pagination}>
{pages.map((page) => (
<li
key={page}
className={
page === currentPage ? styles.pageItemActive : styles.pageItem
}
>
<a className={styles.pageLink} onClick={() => onPageChange(page)}>
{page}
</a>
</li>
))}
</ul>
</div>
);
};
export default Pagination;
框的样式pagination如何在 Android 和 iPhone 上更改 WhatsApp 中的输入语言将在以下位置完成:Home.module.css
.container {
padding: 0 2rem;
}
.pagination {
display: flex;
justify-content: space-between;
align-items: center;
list-style: none;
}
.pageLink {
cursor: pointer;
}
/* pagination pageItem */
.pageItem {
display: flex;
justify-content: center;
align-items: center;
width: 2rem;
height: 2rem;
border: 1px solid #eaeaea;
border-radius: 0.5rem;
cursor: pointer;
}
/* pagination page item when active */
.pageItemActive {
display: flex;
justify-content: center;
align-items: center;
width: 2rem;
height: 2rem;
border: 1px solid #eaeaea;
border-radius: 0.5rem;
cursor: pointer;
background-color: red;
}
一旦我们向下滚动到数据的末尾posts,如何使用 iPhone、Android 和桌面设备清除 Spotify 上的队列我们应该看到正在渲染的框。该函数传递给参数为 的元素,因此当单击框的任何部分时,它将当前页设置为单击的页码。如何在桌面和移动设备上更改 Google Play 中的付款方式1-10onPageChangeanchorpage(1-10)
请记住,如何在 PC 和移动设备上保护您的 Google 活动历史记录文件onPageChange中的函数:index.js
const onPageChange = (page) => {
setCurrentPage(page);
};
现在,让我们看看我们有什么:
添加pagination helper功能
现在,我们已经能够在我们的应用程序中实现分页,如何在 Viki 上创建和加入观看派对但是我们仍然有 100 个帖子被渲染到第一页而不是 10 个。如何在 Google 文档上创建无页文档为了实现这个,我们将在文件中创建一个helper函数:paginate.js
export const paginate = (items, pageNumber, pageSize) => {
const startIndex = (pageNumber - 1) * pageSize;
return items.slice(startIndex, startIndex + pageSize);
};
该paginate文件将具有三个参数:如何在 Telegram 上创建电话号码链接items、pageNumber和pageSize。该函数将在文件中调用,参数将按如下方式传递:index.js
const paginatedPosts = paginate(data, currentPage, pageSize);
在这里,作为从 API 端点返回的数据数组data传递。如何在 WhatsApp 中创建和使用社区itemsThecurrentPage代表pageNumber,并且pageSize作为 传入pageSize。
在pagination函数中,首先通过从中减去数字并将其乘以来startIndex提取。然后,我们切片. 这是我们最初得到的数据数组,直到我们得到+值。currentPage1pageSize(10)itemsstartIndexstartIndexpageSize
例如,在第一页上,pageNumber将是1,如何在 Google 地图上创建您最喜欢的地方列表因此startIndex将是:。1-1 * 10 gives 0
然后, (在as中声明)将导致. 因此,切片从 of till开始。startIndex (0) + pageSizeindex.js1010Array length09
让我们登录paginatedPosts到控制台,如何在移动设备和桌面设备上重启 Discord看看我们有什么:
我们可以在网页上查看我们现在拥有的内容:
而且,我们可以对所有页面进行分页:
我们有它!
结论
感谢您的阅读!我希望本教程能为您提供向 Next.js 应用程序添加分页所需的知识。您可以根据您的用例自定义样式,因为本教程主要关注实现功能的逻辑。您可以在我的存储库中找到该项目的完整代码,并在此处的Vercel 上找到已部署的项目。编码愉快!