--- title: svelte/action --- Actions are functions that are called when an element is created. They can return an object with a `destroy` method that is called after the element is unmounted: ```svelte
``` An action can have a parameter. If the returned value has an `update` method, it will be called immediately after Svelte has applied updates to the markup whenever that parameter changes. > Don't worry that we're redeclaring the `foo` function for every component instance — Svelte will hoist any functions that don't depend on local state out of the component definition. ```svelte ``` ## Attributes Sometimes actions emit custom events and apply custom attributes to the element they are applied to. To support this, actions typed with `Action` or `ActionReturn` type can have a last parameter, `Attributes`: ```svelte ``` ## Types > TYPES: svelte/action