svelte给dom对象绑定事件和vue框架类似。
定义函数:
function handler(index){
alert("hello", index);
}
绑定事件:
<button on:click={handler}>点击</button>
但是带参函数的使用就略有不同了,函数handler的参数index需要传入的时候,不能直接这样使用<button on:click={handler(123)}>点击</button>
,这样的写法会在页面打开时直接执行,而不是在点击按钮的时候执行。
这是初学svelte的时候比较郁闷的事,官方文档中也没有明显的文档说明如何传参。
正确的传参方式是这样的:
<button on:click={() => handler(123)}>点击</button>
将on:click
的内容改写为匿名函数,在函数中调用。
原文:https://www.yuedun.wang/blogdetail/5fea9271de75f459aa011018