이번 포스팅은 Vue.js 의 Vue Template에서 렌더링 될 때,
Vue 인스턴스의 데이터와 연결하는 것 (데이터 바인딩)에 대해 알아봅니다.
1. "data" 속성
먼저, 상위 컴포넌트인 '뷰 인스턴스'에서 하위 컴포넌트 ('appHeader', 'appContent')에 전달할 정보를 "data" 속성에 정의합니다.
"data" 속성의 값은 key-value 형태로 입력(①) 합니다.
이 값은 하위 컴포넌트의 "props" 속성을 통해 전달받습니다. (②)
"prop" 속성의 값은 prop : ['props 속성 명칭']
[data 속성 입력] |
2. 상위 컴포넌트의 데이터 바인딩 ( v-bind:propsdata )
앞서 정의한 propdata의 명칭 (②)으로 컴포넌트에 바인딩 합니다. (③)
v-bind: props 속성명칭 = "상위 컴포넌트 data의 키값"
[propsdata 바인딩] |
지정한 값이 하위 컴포넌트('appHeader', 'appContent')의 template 속성에 정의한 포맷대로 바인딩 됩니다. (④)
[상위 컴포넌트의 data 속성값 반영] |
3. 요약
4. Test Source
[HTML]
1 2 3 4 5 | <div id="app"> <h2>Binding Exercise</h2> <app-header v-bind:h_propsdata="message"></app-header> <app-content v-bind:c_propsdata="num"></app-content> </div> |
[JavaScript]
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 | let appHeader = { template : '<h1>Header : {{ h_propsdata }}</h1>', props : ['h_propsdata'] } let appContent = { template : '<div>Content : {{ c_propsdata }}</div>', props: ['c_propsdata'] } new Vue({ el: '#app', // 지역 컴포넌트 등록 방식 components: { // '컴포넌트 이름' : 컴포넌트 내용 'app-header': appHeader, 'app-content': appContent }, data: { message: 'Message ...', num: 10 } }) |
0 댓글