понимаю что события например on:click - реактивно связанны между компонентами? в дочернем компоненте кнопки я просто ставлю событие on:click, в компоненте родителя я делаю on:click={() => console.log('click button')}, и при нажатии кнопки я в родителе вижу что кнопка нажата и могу это событие обработать
это называется event forwarding. это не имеет отношение к реактивности, просто позволяет ловить ивенты, которые были авто проброшены таким образом, на теге компонента: <!— Button.svelte —> <button on:click/> <!—Parent.svelte—> <Button on:click={handleClick} />
Спасибо за ответ, есть ли в этом какие то недостатки или это обычная практика проброса евентов, и стоит этим пользоваться по мере необходимости?
недостаток только в том, что все ивенты надо описывать явно вручную, чтобы потом ловить их непосредственно на теге- компонента. это имеет свои плюсы - ты точно конкролируешь какие ивенты от какиех dom элементов отлетают наверх на тег-компонента. с другой стороны сложно решить задачу когда ВСЕ ивенты какого-то dom элемента должны отлетать наверх
Обсуждают сегодня