Skip to main content

Svelteでは、<textarea> 要素は text input と同じように振る舞います。bind:valueを使ってみましょう。

App
<textarea bind:value={value}></textarea>

このように名前が一致する場合は、省略形を使用することもできます。

App
<textarea bind:value></textarea>

これは textarea に限らず全てのバインディングに適用されます。

Edit this page on GitHub

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
29
<script>
	import { marked } from 'marked';
 
	let value = $state(`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>