Svelteでは、<textarea>
要素はtext inputと同じように振る舞います。bind:value
を使ってみましょう。
App.svelte
<textarea bind:value={value}></textarea>
このように名前が一致する場合は、省略形を使用することもできます。
App.svelte
<textarea bind:value></textarea>
これはtextareaに限らず全てのバインディングに適用されます。
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>