Skip to main content

svelte/attachments

import { function createAttachmentKey(): symbol

Creates an object key that will be recognised as an attachment when the object is spread onto an element, as a programmatic alternative to using {@attach ...}. This can be useful for library authors, though is generally not needed when building an app.

<script>
	import { createAttachmentKey } from 'svelte/attachments';

	const props = {
		class: 'cool',
		onclick: () => alert('clicked'),
		[createAttachmentKey()]: (node) => {
			node.textContent = 'attached!';
		}
	};
</script>

<button {...props}>click me</button>
@since5.29
createAttachmentKey
, function fromAction<E extends EventTarget, T extends unknown>(action: Action<E, T, Record<never, any>> | ((element: E, arg: T) => void | ActionReturn<T, Record<never, any>>), fn: () => T): Attachment<E> (+1 overload)

Converts an action into an attachment keeping the same behavior. It’s useful if you want to start using attachments on components but you have actions provided by a library.

Note that the second argument, if provided, must be a function that returns the argument to the action function, not the argument itself.

&#x3C;!-- with an action -->
&#x3C;div use:foo={bar}>...&#x3C;/div>

&#x3C;!-- with an attachment -->
&#x3C;div {@attach fromAction(foo, () => bar)}>...&#x3C;/div>
fromAction
} from 'svelte/attachments';

createAttachmentKey

Available since 5.29

Creates an object key that will be recognised as an attachment when the object is spread onto an element, as a programmatic alternative to using {@attach ...}. This can be useful for library authors, though is generally not needed when building an app.

<script>
	import { createAttachmentKey } from 'svelte/attachments';

	const props = {
		class: 'cool',
		onclick: () => alert('clicked'),
		[createAttachmentKey()]: (node) => {
			node.textContent = 'attached!';
		}
	};
</script>

<button {...props}>click me</button>
function createAttachmentKey(): symbol;

fromAction

Converts an action into an attachment keeping the same behavior. It’s useful if you want to start using attachments on components but you have actions provided by a library.

Note that the second argument, if provided, must be a function that returns the argument to the action function, not the argument itself.

<!-- with an action -->
<div use:foo={bar}>...</div>

<!-- with an attachment -->
<div {@attach fromAction(foo, () => bar)}>...</div>
function fromAction<
	E extends EventTarget,
	T extends unknown
>(
	action:
		| Action<E, T>
		| ((element: E, arg: T) => void | ActionReturn<T>),
	fn: () => T
): Attachment<E>;
function fromAction<E extends EventTarget>(
	action:
		| Action<E, void>
		| ((element: E) => void | ActionReturn<void>)
): Attachment<E>;

Attachment

An attachment is a function that runs when an element is mounted to the DOM, and optionally returns a function that is called when the element is later removed.

It can be attached to an element with an {@attach ...} tag, or by spreading an object containing a property created with createAttachmentKey.

interface Attachment<T extends EventTarget = Element> {}
(element: T): void | (() => void);

Edit this page on GitHub llms.txt

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy