본문 바로가기
Vue js

emit 흐름구조

by 갈잃자 2022. 5. 11.

emit는 상급vue에게 하급vue event를 넘겨준다.

1. html에 이벤트를 만들어 준다.
<div>
      <h1>{{ myMessage }}</h1>
      <p>뀨</p>
      <!-- v-model은 양방향 바인딩 -->
    	<!--  -->
      <input type="text" v-model="childInputData" //2번
       @keyup.enter="childInputChange"> //3번
    </div>
</template>
2. 이벤트에 맞는 function을 만들어준다.
data: function() {
    return {
      childInputData: '' // 이부분
    }
3. 이벤트에 맞는 method를 맞춰 만들어준다.
 methods: {
    childInputChange: function() {
      console.log('child!', this.childInputData)
      // 부모 컴포넌에게 1번인자 라는 이벤트를 발생 + 2번인자부터 데이터를 보냄
      this.$emit('child-input-change',this.childInputData) 
      // this.$emit으로 보낼 이벤트명과(child-input-change)    ,이벤트 콜백함수(this.childInputData)
      를 보내준다
    }
  },
      
 childInputChange가 실행이 되는 순간, 상위 vue에게 보내진다.
4.하위 vue의 이벤트를 듣기 위해 
@받은이벤트명(child-input-change)= 받았을때 실행할 메서드 명("parentGetChange")을 작성

<the-about :my-message="parentsData"
    @child-input-change="parentGetChange"></the-about>
5. 상위 vue에 method를 만들어준다.

 methods: {
    parentGetChange: function(inputData) {
      console.log('들리는군..', inputData)
    }
  }

'Vue js' 카테고리의 다른 글

Binding Helper  (0) 2022.05.15
Vue Router 흐름구조  (0) 2022.05.11
props 흐름구조  (0) 2022.05.11
node를 이용한 Vue 프로젝트 구조  (0) 2022.05.11
Vue component  (0) 2022.05.11

댓글