Next.js 12.1 已正式。
新特性概覽
- :支援即時使用
getStaticProps
重新驗證頁面 - :引入
styled-components
和 Relay 等功能 - 引入:使用 SWC 實現零設定支援 Jest
- :比 Terser 快 7 倍的壓縮速度
- :減小 Docker 映象體積約 80%
- :優化穩定性和支援情況
按需使用的 ISR (Beta)
ISR 是 Next.js 9.5 引入的功能,本次的更新提供了按需使用的特性,開發者可按需手動清除特定頁面的 Next.js 快取。
// pages/api/revalidate.js
export default async function handler(req, res) {
// Check for secret to confirm this is a valid request
if (req.query.secret !== process.env.MY_SECRET_TOKEN) {
return res.status(401).json({ message: 'Invalid token' })
}
try {
await res.unstable_revalidate('/path-to-revalidate')
return res.json({ revalidated: true })
} catch (err) {
// If there was an error, Next.js will continue
// to show the last successfully generated page
return res.status(500).send('Error revalidating')
}
}
零設定 Jest 外掛
Next.js 現已支援自動設定 Jest,使用基於 Rust 的 Next.js 編譯器來轉換檔案,包括:
- 自動模擬樣式表(
.css
,.module.css
和.scss
變體),以及影象匯入 - 將
.env
載入到process.env
- 忽略測試解析和轉換的
node_modules
- 忽略測試解析的
.next
- Loading
next.config.js
for flags that enable Next.js compiler transforms
優化自託管功能
Next.js 現在支援自動建立standalone
資料夾,該資料夾僅複製生產部署所需的檔案。這使得自託管 Next.js 應用程式的Docker 映像縮小了約 80% 。
。