Published 2021. 1. 29. 20:21
728x90
반응형

Props로 데이터 전달하기

모든 컴포넌트 인스턴스에는 자체 격리 된 범위가 있음

즉, 하위 컴포넌트의 템플릿에서 상위 데이터를 직접 참조 할 수 없으며 그렇게 해서는 안됨

데이터는 props 옵션 을 사용하여 하위 컴포넌트로 전달 될 수 있음

prop는 상위 컴포넌트의 정보를 전달하기위한 사용자 지정 특성임

하위 컴포넌트는 props 옵션을 사용하여 수신 할 것으로 기대되는 props를 명시적으로 선언해야함

Vue.component('child', {
  // props 정의
  props: ['message'],
  // 데이터와 마찬가지로 prop은 템플릿 내부에서 사용할 수 있으며
  // vm의 this.message로 사용할 수 있습니다.
  template: '<span>{{ message }}</span>'
})

그런 다음 일반 문자열을 다음과 같이 전달할 수 있음

<child message="안녕하세요!"></child>
안녕하세요!

 


camelCase vs. kebab-case

HTML 속성은 대소 문자를 구분하지 않으므로 문자열이 아닌 템플릿을 사용할 때 camelCased prop 이름에 해당하는 kebab-case(하이픈 구분)를 사용해야 함

 

Vue.component('child', {
  // JavaScript는 camelCase
  props: ['myMessage'],
  template: '<span>{{ myMessage }}</span>'
})

 

<!-- HTML는 kebab-case -->
<child my-message="안녕하세요!"></child>

문자열 템플릿을 사용하는 경우에는 이 제한이 적용되지 않음

반응형

'프로그래밍 > Vue' 카테고리의 다른 글

인스턴스  (0) 2021.02.04
Props02  (0) 2021.02.01
컴포넌트 사용하기  (0) 2021.01.28
컴포넌트  (0) 2021.01.27
Vue  (0) 2021.01.26
복사했습니다!