bind
Spread attributes
{
class: "message",
style: "white-space:pre-wrap;",
text: "Hello John!"
}
<h1 bind:>Hello World!</h1>
Result:
<h1 class="message" style="white-space:pre-wrap;">Hello John!</h1>
Very useful with custom tags
With the following tag in your HTML
template
:
<template id="my-button">
<button class="btn btn-" class:="btn" text:="text" click:="click">
<slot></slot>
</button>
</template>
Render this:
[
{
btn: "secondary",
text: "Cancel",
click: (ev) => {
ev.target.textContent = 'canceled!';
}
},
{
btn: "primary",
text: "Submit",
click: (ev) => {
ev.target.textContent = 'submited!';
}
}
]
<my-button each: bind:></my-button>
Result:
<button class="btn btn-secondary">Cancel</button>
<button class="btn btn-primary">Submit</button>
After clicking on the two buttons:
<button class="btn btn-secondary">canceled!</button>
<button class="btn btn-primary">submited!</button>