Svelte 别名/重命名道具

Sys*_*dox 5 svelte svelte-component

有没有办法在 svelte 中重命名/别名道具?

例如,如果我有一个需要fooprop 的组件,但我还想要foo当前状态的局部变量,有什么方法可以重命名传入的 prop,如下所示:

export let foo as forceFoo;
let foo = forceFoo | null;
Run Code Online (Sandbox Code Playgroud)

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

  1. 将道具重命名为类似的名称initialFoo
  2. 重命名状态

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

重命名状态对于单个字段来说是可以的,并且通常对于通用组件来说效果很好,但是当组件是具有许多字段的表单并且必须将这些字段传递给希望它们具有正确名称的保存函数时,就会变得可怕且笨拙。

rix*_*ixo 9

正确的语法如下:

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

  // local state
  let foo = forceFoo
</script>
Run Code Online (Sandbox Code Playgroud)