[VUE] $emit

JIOO·2022년 12월 21일

Vue

목록 보기
11/18
post-thumbnail

📖 $emit이란

부모 컴포넌트에서 자식 컴포넌트로 데이터를 props 해줄 때
자식 컴포넌트에서 props 받은 값을 수정하고 싶을 때 사용

부모 컴포넌트

<자식컴포넌트 @참조="액션($event)" /> 
//실제로 $event를 괄호 속에 넣진 않음
// 참조 = 자식 컴포넌트의 @emit에서 작명된 이름을 써주면 됨
// $event는 자식컴포넌트에서 실어보낸 데이터를 지칭함

자식컴포넌트

<Element @emit("작명",데이터)></Element>

만약 emit을 method에서 함수로 쓰고 싶다면

methods : {
 함수() {
  this.emit("작명",데이터)
  }
}

Event bus

export const eventBus = new Vue(); // 
사용하고 싶은 곳에서 import eventBus from "/있는곳"

데이터 공유생성
eventBus.$emit("작명",공유하고싶은 데이터)

//데이터공유 받기 
eventbus.$on("작명한 네임",콜백함수)


//콜백함수는 arrowfunction으로 바로 표현하거나 
//methods의 this.함수명을 적어 콜백함수를 표현

ex) (data)=>{this.데이터 = data} 또는 


methods : {
 함수 (data) {
  this.데이터 = data
  }
}

//데이터공유 종료(삭제)
evnetbus.off("작명한 네임")
profile
프론트엔드가 좋은 웹쟁이 with Notion (요즘은 노션과 병행 중)

0개의 댓글