Try*_*ria 0 svelte svelte-component svelte-3
我想知道如何使用 Svelte 从函数转发事件。
例如,我有一个App.svelte和一个Component.svelte文件。 Component.svelte是一个按钮组件。我想像这样处理on:click事件:
<script>
function handle(e){ /** Do things */ - /** Forward Event */ }
</script>
<button on:click={handle}/>
Run Code Online (Sandbox Code Playgroud)
所以我也可以从App.svelte文件中获取事件
<script>
import Button from './component.svelte'
function handle(e){ /** Do something */ }
</script>
<div>
<Button on:click={handle}/>
</div>
Run Code Online (Sandbox Code Playgroud)
我知道您可以通过填充on:click属性而不指定要调用的函数来转发component.svelte文件内的事件。但就我而言,我需要在组件内部进行一些内部逻辑。或者我真的需要为此创建自定义事件处理程序吗?
感谢您的帮助 :)
或者我真的需要为此创建自定义事件处理程序吗?
不,如果您只想监听单击,但希望在组件内部执行逻辑并将单击传递给父级,则不需要自定义事件。
Svelte 允许您添加任意数量的 on:click。因此,其中一个 on:clicks 可以为空,并将单击处理程序传递给父级,另一个可以处理组件的内部功能/逻辑。
<button on:click={internalFunction} on:click>Something</button>
Run Code Online (Sandbox Code Playgroud)
这是一个显示它有效的REPL,当我需要了解的只是两个组件中的单击时,我通常使用它来避免 createEventDispatcher 的样板。当然,如果您需要单击在子级中执行某些操作,然后发生其他一些事情,那么父级会收到通知,那么您需要分派该事件,但这适用于您的示例。
归档时间: |
|
查看次数: |
1523 次 |
最近记录: |