[Vue] Custom Event

JeongChaeJin·2022년 7월 25일
0

VuejsStudy

목록 보기
7/19
  • props를 사용했을 때, 부모의 데이터를 자식이 사용했다.
  • 그런데, click과 같은 이벤트에서 ready-only 데이터를 변경할 수 없었다.
    • 부모의 데이터를 바꾸고 싶으면 커스텀 이벤트를 사용한다.
<template>
    <div>
        <img :src="room.image" class="room-img">
        <h4 @click="$emit('openModal', true)"> {{ room.title }} </h4>
        <p> {{ room.price }}</p>
    </div>
</template>
  • 자식에서 해당 이벤트를 발생 시키고 싶을 때, emit을 이용해 부모에게 이벤트를 발생시킨다.
 <TheCard @openModal="isModalOpen = true" :room="room" v-for="(room, i) in products" :key="i" />
  • 부모는 해당 이벤트를 받고 처리해줄 것을 진행하면 된다.
  • 그런데 어떤 컴포넌트를 눌렀는지 모른다.
<template>
    <div>
        <img :src="room.image" class="room-img">
        <h4 @click="$emit('openModal', room.id)"> {{ room.title }} </h4>
        <p> {{ room.price }}</p>
    </div>
</template>
  • emit 시, 해당 방번호가 어떤 것인지에 대한 정보를 보내면 된다.
<TheCard @openModal="isModalOpen=true; clickedNum=$event" :room="room" v-for="(room, i) in products" :key="i" />
  • $event로 전달 받은 데이터를 꺼낼 수 있다.
profile
OnePunchLotto

0개의 댓글