“正在载入”的实现

Next.js 的 App 路由有一个约定:定义 loading.js,那么 Next.js 会自动在页面加载中显示这个组件,加载完成之后,自动隐藏该组件。

同时,loading.js 也是层级性的:本路由里没有的话,往父路由里找,一直到 app/loading.js。如果最终没有任何地方有这个文件,那么就不启用这个功能。

博客列表

// app/post/page.js

import Link from "next/link";

export default async function PostList() {
  const res = await fetch("https://jsonplaceholder.typicode.com/posts");
  const postList = await res.json();

  return (
    <>
      <ul>
        {postList.map((p) => (
          <li key={p.id}>
            <Link href={`/post/${p.id}`}>{p.title}</Link>
          </li>
        ))}
      </ul>
    </>
  );
}

根目录下创建loading.js

博客详情下创建loading.js

本章代码位于04/loading分支

要查看完整内容,请先登录