Node学園で気になっていた@takepepeさんの発表内容のスライドを見た
Progressive Enhancementとは、可能な限り多くのユーザーに不可欠なコンテンツと機能のベースラインを提供することを中心とした設計哲学
例えば、これまでFormによるデータ更新の実装をAPI Clientを介したAPIの呼び出しによって行ってきたが、Formのaction属性にサーバーサイドで動く関数を渡せるようにするなど
これにより、API Clientが不要になるのと、ハイドレーションが完了を待たなくても実行できる利点がある
また、JSオフでも機能するように実装できるようになる
例としてバリデーションで、今まで行っていたFormのonSubmit属性に指定した関数でのクライアントサイドによる事前バリデーションに加え、action属性に指定したServerAction内でもバリデーションを行うようにしておくことができる
こうすることで、事前バリデーションも行いつつ、JSオフの場合でもServerAction内のバリデーションが動くようになる
ところで、PEの導入でメリットとなる「JSオフでも動くForm」をどこまでやるかは本当に線引きがむずかしそう
スライドでも書かれていたが、「JSオフでも動くForm」はこれまで考えてこなかったし、実装アプローチも違うので、やるという方針を決めておかないとならないと感じた
ServerActionは以前よりは安定的になっているとはいえ、まだ不安要素があるので「JSオフでも動くようにする」というのはエンジニア側からまだ提言しなくていいかなと思った
とはいえ、JSオフでも動くことは今ままでリーチできなかったユーザー体験を作り出せる可能性があるので、様子を伺って行きたい