mirror of https://github.com/sveltejs/svelte
Add tutorial for component binding (#5009)
Closes #5008 Co-authored-by: Stephane Vanraes <stephane.vanraes@fjordline.com> Co-authored-by: pngwn <pnda007@gmail.com>pull/6455/head
parent
92422fdee2
commit
f9b796cabe
@ -0,0 +1,5 @@
|
||||
<script>
|
||||
import InputField from './InputField.svelte';
|
||||
</script>
|
||||
|
||||
<InputField />
|
@ -0,0 +1,9 @@
|
||||
<script>
|
||||
let input;
|
||||
|
||||
export function focus() {
|
||||
input.focus();
|
||||
}
|
||||
</script>
|
||||
|
||||
<input bind:this={input} />
|
@ -0,0 +1,9 @@
|
||||
<script>
|
||||
import InputField from './InputField.svelte';
|
||||
|
||||
let field;
|
||||
</script>
|
||||
|
||||
<InputField bind:this={field}/>
|
||||
|
||||
<button on:click={() => field.focus()}>Focus field</button>
|
@ -0,0 +1,9 @@
|
||||
<script>
|
||||
let input;
|
||||
|
||||
export function focus() {
|
||||
input.focus();
|
||||
}
|
||||
</script>
|
||||
|
||||
<input bind:this={input} />
|
@ -0,0 +1,19 @@
|
||||
---
|
||||
title: Binding to component instances
|
||||
---
|
||||
|
||||
Just as you can bind to DOM elements, you can bind to component instances themselves. For example, we can bind the instance of `<InputField>` to a prop named `field` in the same way we did when binding DOM Elements
|
||||
|
||||
```html
|
||||
<InputField bind:this={field} />
|
||||
```
|
||||
|
||||
Now we can programmatically interact with this component using `field`.
|
||||
|
||||
```html
|
||||
<button on:click="{() => field.focus()}">
|
||||
Focus field
|
||||
</button>
|
||||
```
|
||||
|
||||
> Note that we can't do `{field.focus}` since field is undefined when the button is first rendered and throws an error.
|
Loading…
Reference in new issue