sugiii8's tech blog.
post: 2023-01-18
update: 2023-01-19
INDEX

Next 12 -> 13アップグレード したときのメモ

thumbnail

本ブログのNextバージョンを12->13にした際のメモ


アップグレードしたもの

package.jsonの差分は以下の通り
主に以下のメジャーアップデートを行った

next: 12 -> 13
react: 17 -> 18


何をやったか


Next周りの対応

  • Linkコンポーネントのaタグラップしない対応

Next13からLinkコンポーネントにaタグを挟まなくて良くなった
https://nextjs.org/blog/next-13#nextlink

  • 対応内容: aタグを消す


React

  • VFC非推奨

React.FCでchildrenを使わないことを明示したい場合VFC(Void Functional Conponent)を使っていたが、React18からFCにchildrenが除外された。(使う際に明示する必要がある)それに伴ってVFCは非推奨となったのでFCに変更した。
https://ja.reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html#updates-to-typescript-definitions

  • 対応内容: VFC -> FCに変更


microCMS

これはバージョンアップに伴い、というより以前の実装部分が古くなってたので修正したものが多い

  • ListResponseの型

リスト系レスポンスの型を独自で定義したが、microCMS側で提供されてたのでそれを使うようにした

// before
type ListContentsResponse<T> = {
  contents: T[]
  totalCount: number
  offset: number
  limit: number
}
type BlogListResponse = ListContentsResponse<BlogResponse>
type StaticProps = {
  blogs: BlogListResponse
  totalCount: number
}


// after
import { MicroCMSListResponse } from "microcms-js-sdk"
type StaticProps = {
  blogs: MicroCMSListResponse<BlogResponse>
  totalCount: number
}


その他

上記に伴うファイル整理とか、謎にpromise.allしてるところをawaitに変更する等があったが自分の実装部分なので割愛。

終わり

思ったほど大工事にはならなかった。