【Next.js】SSR環境でやっちゃダメなこと【Day.js】

2022-04-27

前回の記事 で SSR 時における Day.js の挙動を調べてみました。

ということで前回の記事を読めばわかる方はわかると思いますが、SSR 環境下で書いてはいけない書きっぷりがいくつかあるのでざくっと書いていこうと思います。


useState の初期値に現在日時を指定する

const [currentDate, setCurrentDate] = useState(dayjs());

SSR から CSR に移ったタイミングで state が再度初期化されるため、render 結果に差異が発生します。

window オブジェクトが突っ込めないのと同じですね。

useMemo 内で使用する

useState と同様ですね。


Stack Overflow を覗いていると上記の解答がベストアンサーになっていたので、念のため。

基本的には window オブジェクトと同様の扱い方をすることが大切ですね。

© 2018 kk-web