Nuxt3의 이벤트 버스

2633 단어 nuxt3vue3
이벤트 버스는 일반적으로 서로 다른 구성 요소 간의 통신을 가능하게 하는 메커니즘입니다. 이러한 구성 요소는 프로젝트의 모든 수준의 구성 요소 계층에 존재할 수 있습니다.

이벤트 버스 및 Nuxt2에서의 구현에 대해 자세히 알아보려면 링크를 방문하세요.

VueJS Eventbus: Easy way to pass data between components

그러나 official documentation 이벤트 버스 구현이 Vue 2에서 Vue 3으로 어떻게 변경되었는지 확인할 수 있습니다.

Vue3/Nuxt3에서 이벤트 버스를 구현하는 새롭고 간단한 방법인 소개mitt

mitt 설치부터 시작하겠습니다.

npm i mitt


다음으로 플러그인 디렉토리에 mitt.client.js라는 새 플러그인을 등록합니다.

import mitt from "mitt";
const emitter = mitt();
export default defineNuxtPlugin((nuxtApp) => {
    nuxtApp.provide('bus', {
      $on: emitter.on,
      $emit: emitter.emit,
    })
  })


Nuxt3에서 플러그인 등록에 대해 자세히 알아보기here

다양한 구성 요소에서 이벤트를 내보내고 수신하는 방법을 살펴보겠습니다. 두 구성 요소 A와 B를 고려하십시오. 우리의 경우 구성 요소 A는 이벤트를 내보내고 구성 요소 B는 이벤트를 수신합니다.

ComponentA.js

this.$bus.$emit("someEvent", 'Data to send')


ComponentB.js

mounted() {
this.$bus.$on("someEvent", (data) => {
    console.log(data);
    //Some stuff to do..
}


꽤 깔끔하고 깨끗합니다. 읽어 주셔서 감사합니다!

좋은 웹페이지 즐겨찾기