何时使用表单操作与 on:submit?

zar*_*tra 3 svelte sveltekit

我目前正在学习 Svelte 和 SvelteKit,到目前为止我很喜欢它。

然而,让我有点困惑的一件事是,什么时候应该使用表单操作,什么时候应该使用简单的on:submit处理程序?

是否有不同的用例?或者也许它们可以同时使用?如果我想向外部API发送JSON数据该怎么办?

感谢您的任何提示!

Lef*_*ium 7

表单操作和表单操作之间的一个主要区别on:submit是表单操作的目的是在没有 JS 的情况下工作;on:submit如果 JS 被禁用/损坏,将无法工作。

因此,SvelteKit 鼓励尽可能使用表单操作,以提供最佳的用户浏览体验。

如果您想将 JSON 数据发送到外部 API,有一些选项,包括:

  • 直接从客户端(浏览器)调用外部API。可能是最简单的选项,但如果 API 私钥暴露在 URL/有效负载中的任何位置,则不建议这样做。另外,如果 JS 被禁用或损坏,这可能不起作用。
  • 使用SvelteKit +server 路由包装 API ,该路由从服务器调用外部 API(相对于上面的客户端)。这有助于防止泄露私有 API 密钥,但如果 JS 被禁用或损坏,仍然无法工作。
  • 从表单操作调用 API。不过,表单操作不采用 JSON 作为输入;他们将FormData作为输入。因此该操作应根据表单输入构建 JSON。