Performance: Component events (createEventDispatcher)
This affects interaction responsiveness and event propagation efficiency between components.
import { createEventDispatcher } from 'svelte'; // Child.svelte <script> const dispatch = createEventDispatcher(); function handleClick() { dispatch('click'); } </script> <button on:click={handleClick}>Click me</button>
import { writable } from 'svelte/store'; // Child.svelte <script> import { sharedStore } from './store.js'; function handleClick() { sharedStore.set('clicked'); } </script> <button on:click={handleClick}>Click me</button>
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Using createEventDispatcher for child-to-parent events | Minimal, only event dispatch | 0 unless handler changes layout | 0 unless handler changes styles | [OK] Good |
| Using global store for simple events | Multiple components update | Multiple reflows if layout changes | Multiple paints if styles change | [X] Bad |
createEventDispatcher in a Svelte component?createEventDispatcher in a Svelte component?import { createEventDispatcher } from 'svelte';
const dispatch = createEventDispatcher();
function sendData() {
dispatch('update', { value: 42 });
}on:update?event.detail containing { value: 42 } [OK]import { createEventDispatcher } from 'svelte';
const dispatch = createEventDispatcher;
dispatch('click');save and cancel, each with different data. Which is the best way to implement this using createEventDispatcher?Pass the test and this pattern moves unknown