Там нет четкого пути, упомянутого в документации, и ваше решение будет работать, но на самом деле не очень элегантно. Мое собственное предпочтительное решение - использовать каррирование в самом блоке скрипта .
const handleClick = (parameter) => () => {
// actual function
}
И в HTML
<button on:click={handleClick('parameter1')>
It works...
</button>
Остерегайтесь карри
Как уже упоминалось в комментариях, карри имеет свои подводные камни. Наиболее распространенный handleClick('parameter1')
вариант, который в приведенном выше примере будет вызываться не при нажатии, а при рендеринге, возвращая функцию, которая, в свою очередь, будет запущена при нажатии. Это означает, что эта функция всегда будет использовать «параметр1» в качестве аргумента.
Поэтому использование этого метода будет безопасным только в том случае, если используемый параметр является некоторой константой и не изменится после того, как он будет представлен.
Это привело бы меня к другому вопросу:
1) Если в качестве константы используется параметр, вы также можете использовать отдельную функцию
const handleParameter1Click = () => handleClick('parameter1');
2) Если значение является динамическим, но доступно внутри компонента, это все равно можно обработать с помощью отдельной функции:
let parameter1;
const handleParameter1Click = () => handleClick(parameter1);
3) Если значение является динамическим, но не доступно из компонента, поскольку оно зависит от некоторой области видимости (например, список элементов, отображаемых в блоке #each), подход «хакерский» будет работать лучше. Однако я думаю, что в этом случае было бы лучше, если бы сами элементы списка были компонентом и вернулись к случаю № 2.
В заключение: карри будет работать при определенных обстоятельствах, но не рекомендуется, если вы не очень хорошо осведомлены и не знаете, как его использовать.