Next.js 12.3まとめ
基本的には以下のNext.js 12.3の内容を翻訳してまとめたものになります。
TypeScriptの自動インストール
以前から.ts(x)
ファイルが存在するプロジェクトでyarn dev
を実行した場合はtsconfig.json
を自動生成した上で必要な依存ライブラリのインストールを促すメッセージが表示されていましたが、今後は必要な依存ライブラリも自動インストールしてくれるようになりました。
これでTypeScriptの導入は拡張子を.ts(x)
に変更するだけになったので、地味ですが便利ですね。
Fast Refreshの改善
以下のファイルが変更された場合もFast Refreshが適用されるようになりました。
-
.env
系 jsconfig.json
tsconfig.json
.env
系は新しい値を追加したり、既存の値を変更したりするたびにyarn dev
し直す必要があったので、こちらも地味ですが便利ですね。
Imageコンポーネント
next/future/image(Stable)
Next.js 12.2で登場したnext/future/image
が早くも(と思いましたが、Next.js 12.2って2ヶ月も前だったんですね…)Stableになりました。
next/image
ではimg
タグがspan
タグで囲まれていたため、スタイリングしにくい面がありましたが、next/future/image
ではimg
タグのみのためスタイリングしやすくなっていそうです。
その代わりにlayout
やobjectFit
、objectPosition
などのレイアウト系のpropsは削除されており、style
やclassName
を使用するようになっています。
また、将来的には現状のnext/image
はnext/legacy/image
にリネームされ、next/future/image
がnext/image
にリネームされる予定のようです。
その際にはマイグレーション用のcodemodが提供されるようですが、今後はnext/future/image
を使用していった方がよいかもしれません。
詳細は以下のページで確認できます。
Remote Patterns(Stable)
Image Optimization APIを使用してRemote Imagesを最適化したい場合に、悪意のあるユーザーからアプリケーションを保護するために、Remote Imagesをホストしているドメインのリストを定義しておく必要があるようです。
詳細は以下のページで確認できます。
画像最適化の無効化(Stable)
Image Optimization APIの使用には画像をオンデマンドで最適化するためのNode.jsサーバーが必要です。
そのためnext export
ではImage Optimization APIを使用できず、loader
propにサードパーティの画像最適化プロバイダを設定する必要がありました。
今後はnext.config.js
を使用して画像最適化を一括で完全に無効化することができるようになったので、next export
でもnext/image
を使用しやすくなるのではないでしょうか。
SWC Minifier(Stable)
Next.js 12で登場したSWC MinifierがStableになりました。
個人的にはまだ試せていないので試してみたいです。
また、次のメジャーバージョンではデフォルトでオンにする予定のようです。
新しいルーターとレイアウトの続報
こちらは新機能として追加されたわけではありませんが、以前公開されたLayouts RFCの続報で、()
で囲むことでURL構造に影響を与えずにRouteのグループ化ができるRoute Groupsなど、いくつか追加機能が公開されています。
また、次のメジャーバージョンではパブリックベータが始まるようです。
詳細は以下のページで確認できます。
その他
組み込みのアクセシビリティの機能を紹介するドキュメントの追加など、いくつかの改善があります。
詳細は以下のページで確認できます。
Discussion