前端技术更新很快,直接按照书中的例子很多都跑不通了。基于作者的思路,我把代码改调整了一下以适应当下的技术。

1. 启动next.js

2.设置路由

书中用的是Pages Router。Next.js 13.4+之后默认使用App Router。

Pages Router 结构:

project/
├── pages/
│   ├── hello.tsx
│   ├── api/
│   │   └── names.js
│   └── ...

App Router 结构:

project/
├── app/
│   ├── hello/
│   │   └── page.tsx
│   ├── api/
│   │   └── names/
│   │       └── route.js
│   └── ...

核心特性对比

特性Pages RouterApp Router
数据获取getServerSideProps, getStaticPropsasync 组件,服务端组件默认
布局系统_app.js, _document.jslayout.js(嵌套布局)
加载状态需要手动实现loading.js 自动处理
错误处理_error.jserror.js(作用域化)
文件约定根据文件名路由根据特殊文件名(page.js, layout.js等)
服务器组件不支持默认支持,减少客户端 JS
流式渲染不支持支持,提升性能

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐