데이터 전달(이벤트 발생) 방향
1. Child.svelte 컴포넌트에서 발생한 "Hello!" 문자열을 Parent.svelte 컴포넌트가 전달
2. Parent.svelte 컴포넌트에서 App.svelte 컴포넌트로 전달
"Hello!" "Hello!"
App.svelte <--- Parent.svelte <--- Child.svelte
* 샘플코드
<!-- ------------ -->
<!-- Child.svelte -->
<!-- ------------ -->
<script>
import {createEventDispatcher} from 'svelte';
const dispatch = createEventDispatcher();
function sayHello(){
// 상위 컴포넌트로 이벤트 전달
var message = {
text: "Hello!"
}
dispatch("message", message)
}
</script>
<button on:click={sayHello}> Say Hello </button>
<!-- ----------------- -->
<!-- Parent.svelte (1) -->
<!-- ----------------- -->
<script>
import Child from './Child.svelte'
import {createEventDispatcher} from 'svelte';
const dispatch = createEventDispatcher();
function handleMessage(event){
dispatch("message", {
text: "Hello !"
})
}
</script>
<Child on:message={handleMessage} />
<!-- ----------------- -->
<!-- Parent.svelte (2) -->
<!-- ----------------- -->
<script>
import Child from './Child.svelte'
</script>
<Child on:message />
<!-- ---------- -->
<!-- App.svelte -->
<!-- ---------- -->
<script>
import Parent from './Parent.svelte'
let text = ""
function handleMessage(event){
text = event.detail.text
}
</script>
<Parent on:message={handleMessage}/>
<h1>
{text}
</h1>
'생계유지형 개발자 > JS Framework' 카테고리의 다른 글
[Svelte] Motion - tweened, spring example (0) | 2022.06.23 |
---|---|
[Svelte] 기초저ㄱ인 nput 태그 다루기 (0) | 2022.06.15 |
[vue] <img src="[object Module]"> 이미지가 나오지 않을 때 (0) | 2021.08.05 |
scss 파일에서 url 오류날 때 (@import와 src 사용하기) (0) | 2021.07.22 |
[Vue] Vue CDN으로 사용 시 this가 window를 가르킬 때 (0) | 2021.03.24 |