Svelte alias/rename 道具

Svelte alias/rename props

有什么方法可以 rename/alias svelte 中的道具吗?

例如,如果我有一个采用 foo 道具的组件,但我还想要一个 foo 当前状态的局部变量,是否有任何方法可以稍微重命名传入的道具像这样:

export let foo as forceFoo;
let foo = forceFoo | null;

通常正确答案是以下两个之一:

  1. 将道具重命名为 initialFoo
  2. 重命名状态

在这种情况下重命名 prop 是不合适的 - 它是组件的 public API 而不是初始状态,它是强制该字段值的可选覆盖。

重命名状态对于单个字段是可以的,并且通常适用于通用组件,但是当组件是一个具有许多字段的表单并且必须将这些字段传递给需要它们的保存函数时,它变得可怕且笨拙有正确的名字。

正确的语法如下:

<script>
  // aliased prop
  let forceFoo
  export { forceFoo as foo }

  // local state
  let foo = forceFoo
</script>