IT-Q

next/image(Image コンポーネント)を使う理由として、公式が挙げているものはどれですか。

サイズの最適化、レイアウトシフトの防止、画面外の遅延読み込み、リモート画像のオンデマンドなリサイズです。地味に効くのは、幅と高さを与えることで領域が先に確保される点です。

面接官が見ているのは「なんとなく速い」で止まっていないか。

よくある答えと、面談でどう見られるか

  • サイズと形式の最適化、レイアウトシフトの防止、遅延読み込み
    代償(最適化はサーバー側の処理)まで言えるとなお良いです。
  • Next.js では img タグが使えないため
    使えます。使えるうえで最適化のために選ぶ、という話です。
  • 画像が自動で圧縮されるため
    間違いではありませんが、それだけだと弱いです。他の2点も挙げたいところです。
  • 画像をビルド時にすべて最適化して埋め込むため
    最適化は実行時に行われます。ビルド時ではありません。

模範解答

公式が挙げているのは、サイズの最適化(端末に合わせた配信と新しい形式)、視覚的な安定性(レイアウトシフトの防止)、読み込みの速さ(画面外の遅延読み込み)、そして配信の柔軟性(リモートの画像もオンデマンドでリサイズ)です。

レイアウトシフトの防止は地味ですが効きます。幅と高さを与えるので、読み込み前から場所が確保され、画像が入った瞬間に下の要素がずれる現象を防げます。

代償もあります。最適化はビルド時ではなく実行時のサーバー処理なので、自前ホスティングでは CPU とストレージを使います。なお、最適化を無効にしても他の利点は保てる、と公式は書いています。