📘
만들면서 배우는 svelte
  • 1. svelte 소개
  • 2. 개발환경 설정
    • 수업 코드 및 문서 가이드 안내
    • 비주얼스튜디오 & REPL
    • 설치
  • 3. 컴포넌트 - 기본
    • 앱 구조 설명 : main.js, App.js, 폴더구조
    • 컴포넌트 기본 : 레이아웃 샘플 구성(여러 component 연동)
    • state
    • reactivity
    • 컴포넌트 통신방법용 기본 앱 코드
    • 컴포넌트 통신방법 1 : props
    • 컴포넌트 통신방법 2 : dispatch
    • 컴포넌트 통신방법 3 : context API
    • 컴포넌트 통신방법 4 : store
  • 4. 컴포넌트 - 템플릿 제어
    • {#if ...}
    • {#each ...}
    • bind
    • event
    • slot
    • lifecycle (생명주기)
  • 5. 스타일 및 효과
    • 동적 css 적용방법
    • transition : 화면전환
    • todo store 적용 3 : 컴포넌트에 store 연동
  • 6. 실습 1 - TODO 만들기
  • 7. 실습 2 - store를 통한 todo 리팩토링
  • 8. 라우터 - routify
    • 소개 & 설치
    • 라우팅 생성
    • 링크 생성
    • parameter 전달 및 받기
    • todo 서비스에 적용
  • 9. ajax 처리
    • fetch와 {#await ..} 적용
    • axios 적용
  • 10 . 기타
    • 경로 쉽게 적용하기
    • javascript 배열 조작 메서드
    • 화살표 함수
Powered by GitBook
On this page

Was this helpful?

  1. 3. 컴포넌트 - 기본

컴포넌트 통신방법 1 : props

state 즉 상태값은 해당 state를 만든 자기자신 컴포넌트에서만 쓰이는 경우도 있지만 state를 다른 컴포넌트에서전달해서 사용하는 경우도 매우 많습니다.

2) props 설명

state의 전달에서 가장 기본이 되는 방법은 부모(상위)컴포넌트에서 자식(하위) 컴포넌트로 값을 전달하는 경우입니다. 이럴 경우 사용 되는 기본 전달 방법인 바로 props입니다.

예제 1

  • App.svelte

<script>
import Child from './child.svelte'
</script>

<SChildComp carryValue = { 12 } >

태그 형태의 컴포넌트에 prop이름 = { 전달값 } 이 형태로 값을 전달할 수 있습니다.

  • Child.svelte

<script>
	export let carryValue
</script>

<p> 전달된 값은 { carryValue } 입니다. </p>

자식컴포넌트로 전달된 값은 export let props이름 이 형태로 받아서 사용 가능합니다.

정의된 state를 전달하는 방법도 있습니다. 가장 기본적으로 많이 쓰이는 방법입니다.

<script>
import Child from './child.svelte'

let carryValue = 12

</script>

<Child {carryValue} >

// Child.svelte
<script>
	export let carryValue
</script>

<p> 전달된 값은 { carryValue } 입니다. </p>

props는 또한 함수도 전달가능합니다.

// App.svelte
<script>
import Child from './components/child.svelte'

let value = 0

function handleValueAdd(event, param) {
	value = value + param
}

</script>

<p>value : {value}</p> 

<Child {handleValueAdd} />

// child.svelte
<script>

import SubChild from './subChild.svelte'

export let handleValueAdd

</script>

<SubChild {handleValueAdd} />

// subChild.svelte
<script>

export let value
export let handleValueAdd

</script>

<button on:click={(event) => handleValueAdd(event,10)} >Add 10</button>
<button on:click={(event) => handleValueAdd(event,20)} >Add 20</button>

예제 - props

  • App.svelte


<script>
import PanelComponent from './components/panelComponent.svelte'

let count = 10

function incrementCount() {
	// count = count + 1
	count ++

}

</script>

<PanelComponent {count} {incrementCount} />
  • panelComponent.svelte

<script>
import ButtonComponent from './buttonComponent.svelte'

export let count
export let incrementCount
</script>

<div class="penal">
  <h1>{count}</h1>

  <ButtonComponent {incrementCount} />
</div>

<style>
  .penal {
    padding: 20px;
    display:flex;
    flex-direction: column;
    justify-items: center;
    justify-content: space-around;
    align-items: center;
    height: 500px;
    width:400px;
    background: #e2e2e2;
    border: 1px solid #777777;
  }
</style>
  • buttonComponent.svelte

<script>
export let count
export let incrementCount
</script>

<button on:click={incrementCount} >
  increment count [{count}]
</button>

Previous컴포넌트 통신방법용 기본 앱 코드Next컴포넌트 통신방법 2 : dispatch

Last updated 4 years ago

Was this helpful?

[만들면서 배우는 Svelte]
만들면서 배우는 svelte