主要观点:在Val Town使用 Remix,对其既有喜爱也有不满,尤其在表单处理方面。
关键信息:
- Remix 拥抱传统表单及 FormData 对象和编码,存在诸多限制,如仅用于文本数据、复选框和单选框未选中时不包含等,这给如 conform 等库带来困扰。
- 处理表单提交和 useEffect 的方式存在问题,如用 useEffect 避免不了,其存在诸多弊端,如依赖项变化导致运行不明确、需考虑状态机等,容易导致 useEffect 触发次数不当,且在处理第三方库变量稳定性时较困难。
重要细节: - 以写 README 的表单为例,输入为空时服务器端值为 undefined ,这显示出 FormData 的局限性。
- 处理表单提交的半经典方式如从nico.fyi中截取的代码片段,存在诸多问题。
- useEffect 的问题包括需同时处理触发和使用的变量,依赖项变化难以预测和调试,以及需考虑状态机等,导致 API 的“人体工程学”较差。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。