一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • getServerSidePropsに移行できなかった話

Next9.3~の話です。

9.3以前はgetInitialPropsでFirstRender前の前処理を行なっていたわけですが、
9.3からは必ずサーバ側で実行されるgetServerSidePropsが追加されました。

現状、getInitialPropsがなくなるわけではないため、
無理に移行しなくても良いのですが、
以下の点で不満がありました。

・サーバとクライアントの両方で実行されるため、ライフサイクル管理が手間な時がある
・サーバとクライアントで差分が生まれる時がある
・上記の理由から可読性が下がる(時がある)

乗り換えるべく、いろいろ調査をしたわけですが、
現プロジェクトにて次の問題があり、
結果移行が想像以上に大変なことがわかりました。

1) ページによってはサーバ側で特殊な動きをする(リダイレクトなど)
2) 素直なjsonをreturnしているわけではない

1はそもそも仕様の見直しから始めることになるので、
簡単に直せない。

2に関しては、どういうこと?とお思いの方もいらっしゃるでしょうが、
オブジェクトだけでなく、classから生成したインスタンスも含んでいる
ということです。

getServerSidePropsは必ずサーバサイドで実行され、クライアントに返されます。
その関係もあって、classインスタンスを返すことはできません。

しかし、getInitialPropsは、
その実行とそれを受け取るconstructorが同じ場所(サーバないしクライアント)なため、
getServerSidePropsのような縛りがありませんでした。

つまり影響範囲はStoreにも及ぶということになります。
(別途シリアライズの仕組みが必要となる)

めんどくさかー。

The following two tabs change content below.

江尻 翔

フリーでSEをしています。 バックエンドから逃げて、 現在はフロントエンドメインでお仕事中。

最新記事 by 江尻 翔 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア