props
-프롭스 속성은 컴포넌트 간에 데이터를 전달할 수 있는 컴포넌트 통신 방법 입니다.
프롭스 속성을 기억할 때는 상위 컴포넌트에서 하위 컴포넌트로 내려보내는 데이터 속성으로 기억하면 쉽다!
사용 예시 코드
html
<div id="app">
<!-- <app-header v-bind:프롭스 속성이름="상위컴포넌트 데이터 이름"></app-header> -->
<app-header v-bind:propsdata="message"></app-header>
<!-- HTML은 대소문자 구분 하지 않는다!. 주의해야 한다-->
</div>
js
//하위 컴포넌트
var appHeader = {
template: '<h1>{{ propsdata }}</h1>',
props: ['propsdata']
}
//상위 컴포넌트
new Vue({
el : '#app' ,
components : {
'app-header' : appHeader
},
data : {
//상위 컴포넌트 데이터 이름 : message
message : 'Root message',
num : 10
}
});
props 흐름
1. 상위 컴포넌트의 data값이 저정된다
2. data 값이 html v-bind 속성 이름으로 들어간다
3. 하위 컴포넌트의 props와 template에 들어간다.
event emit
-컴포넌트의 통신 방법중 하위 컴포넌츠에서 상위 컴포넌트로 통신하는 방식입니다.
사용예시 코드
html
<div id="app">
<!-- <app-header v-on:하위컴포넌트에서 발생한 이벤트 이름="상위 컴포넌트의 메소드 이름"></app-header> -->
<app-header v-on:pass="logText"></app-header>
</div>
js
//하위 컴포넌트
var appHeader = {
template : '<button v-on:click="passEvent">click</button>',
methods : {
passEvent : function(){
this.$emit('pass'); //pass라는 이벤트 발생!
}
}
}
//상위 컴포넌트
new Vue({
el : '#app' ,
components : {
'app-header' : appHeader
},
methods : {
logText : function() {
console.log('logText');
}
}
});
'Front-end > Vue.js' 카테고리의 다른 글
Vue Router ? (0) | 2020.01.02 |
---|---|
props / event Emit (2) (0) | 2019.12.30 |
컴포넌트 통신 이란 ? (0) | 2019.12.27 |
Instance / Component (0) | 2019.12.26 |
Vue (0) | 2019.12.26 |