You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Svelte技术问题:如何无需导出函数让父组件直接绑定on:click到子组件

解决方案

直接修改button.svelte,移除导出的handleClick变量,并利用Svelte的事件转发特性,就能实现父组件直接通过on:click绑定事件的需求:

修改后的button.svelte代码:

<script lang="ts">
  <!-- 移除原有的handleClick导出代码 -->
</script>
<button on:click>
  <slot></slot>
</button>

原理说明

在Svelte中,当组件内部的DOM元素使用on:event(这里是on:click)但不指定具体处理函数时,该事件会自动转发到组件实例本身。父组件就可以像操作原生DOM元素一样,直接通过on:click为组件绑定事件处理函数。

此时app.svelte可按期望方式使用:

<script lang="ts">
  import Button from '$lib/button/button.svelte';
  
  function handleClick() {
    console.log('click!');
  }
</script>
<Button on:click={handleClick}>
  Click me!
</Button>

内容的提问来源于stack exchange,提问作者Umer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 02:17:27