Мне нравится направление, в котором движутся React и Next.js: нативные формы, Server Actions, меньше клиентского JavaScript, больше progressive enhancement.
На уровне идеи это очень красиво.
Но как только форма становится сложнее, чем одно поле email, выясняется, что вокруг нее снова появляется много однотипного glue code:
-
достать значения из
FormData -
собрать массивы и вложенные поля
-
провалидировать все через
zod -
превратить ошибки
zodв удобный объект для UI -
вернуть предсказуемый
stateдляuseActionState -
снова руками прописывать
defaultValue,defaultChecked,Читать полностью »
