The <textarea>
element behaves similarly to a text input in Svelte — use bind:value
:
App.svelte
<textarea bind:value={value}></textarea>
In cases like these, where the names match, we can also use a shorthand form:
App.svelte
<textarea bind:value></textarea>
This applies to all bindings, not just textareas.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<script>
import { marked } from 'marked';
let value = `Some words are *italic*, some are **bold**\n\n- lists\n- are\n- cool`;
</script>
<div class="grid">
input
<textarea {value}></textarea>
output
<div>{@html marked(value)}</div>
</div>
<style>
.grid {
display: grid;
grid-template-columns: 5em 1fr;
grid-template-rows: 1fr 1fr;
grid-gap: 1em;
height: 100%;
}
textarea {
flex: 1;
resize: none;
}
</style>