No hay una forma clara mencionada en la documentación y su solución funcionará, pero de hecho no es muy elegante. Mi propia solución preferida es usar curry en el bloque de script .
const handleClick = (parameter) => () => {
// actual function
}
Y en el HTML
<button on:click={handleClick('parameter1')>
It works...
</button>
Cuidado con el curry
Como se menciona en los comentarios, el curry tiene sus trampas. El más común que en el ejemplo anterior handleClick('parameter1')
no se activará al hacer clic, sino al renderizar, devolviendo una función que a su vez se activará al hacer clic. Esto significa que esta función siempre usará 'parámetro1' como argumento.
Por lo tanto, usar este método solo sería seguro si el parámetro utilizado es una constante de algún tipo y no cambiará una vez que se procese.
Esto me llevaría a otro punto:
1) Si es una constante que usa un parámetro, también podría usar una función separada
const handleParameter1Click = () => handleClick('parameter1');
2) Si el valor es dinámico pero está disponible dentro del componente, esto aún podría manejarse con una función independiente:
let parameter1;
const handleParameter1Click = () => handleClick(parameter1);
3) Si el valor es dinámico pero no está disponible desde el componente porque depende de algún tipo de alcance (por ejemplo: una lista de elementos representados en un bloque # cada) enfoque 'hacky' funcionará mejor. Sin embargo, creo que sería mejor en ese caso tener los elementos de la lista como un componente y recurrir al caso # 2
Para concluir: el curry funcionará bajo ciertas circunstancias, pero no se recomienda a menos que sea muy consciente y cuidadoso sobre cómo usarlo.