如何在Svelte中使用道具

70 阅读1分钟

了解如何在Svelte中使用道具,并让两个具有父/子关系的组件相互交流

你可以使用语法import ComponentName from 'componentPath' ,将一个Svelte组件导入任何其他组件。

<script>
import SignupForm from './SignupForm.svelte';
</script>

路径是相对于当前组件路径的。./ ,意思是 "这个相同的文件夹"。你会用../ ,回到一个文件夹,以此类推。

一旦你这样做了,你就可以在标记中使用新导入的组件,就像一个HTML标签。

通过这种方式,你在两个组件之间形成了父子关系:导入的组件和被导入的组件。

通常你想让父组件向子组件传递数据。

你可以使用props来实现。Props的行为类似于普通HTML中的属性,它们是一种单向的通信形式。

在这个例子中,我们传递了disabled 道具,将JavaScript值true 传给它。

<SignupForm disabled={true}/>

在SignupForm组件中,你需要导出 disabled 道具,以这种方式。

<script>
  export let disabled
</script>

这是你表达道具被暴露给父级组件的方式。

当使用该组件时,你可以传递一个变量而不是一个值,以动态地改变它。

<script>
import SignupForm from './SignupForm.svelte';
let disabled = true
</script>

<SignupForm disabled={disabled}/>

disabled 变量值发生变化时,子组件将以新的道具值更新。例子。

<script>
import SignupForm from './SignupForm.svelte';
let disabled = true
setTimeout(() => { disabled = false }, 2000)
</script>

<SignupForm disabled={disabled}/>