> 웹 프론트엔드 > 프런트엔드 Q&A > Vue에서 관련 없는 구성요소에 매개변수를 전달하는 방법

Vue에서 관련 없는 구성요소에 매개변수를 전달하는 방법

WBOY
풀어 주다: 2023-05-08 10:53:06
원래의
718명이 탐색했습니다.

Vue에서 구성 요소는 일반적으로 props 속성을 통해 데이터를 전달할 수 있지만 때로는 관련되지 않은 구성 요소 간에 데이터를 전달해야 하는 경우도 있습니다.

예를 들어, 한 구성 요소에서 다른 구성 요소로 데이터를 전달해야 하지만 두 구성 요소가 연결되어 있지 않을 수 있습니다. 이 경우 Vue의 이벤트 시스템을 사용하여 상위가 아닌 구성 요소와 하위 구성 요소 간의 통신을 구현할 수 있습니다. 특히 Vue에서 $on 및 $emit 메소드를 사용하여 이벤트를 보내고 받을 수 있습니다.

$on 메소드는 현재 구성요소에 사용자 정의 이벤트를 등록하는 데 사용됩니다. 이벤트가 트리거되면 현재 구성요소가 해당 작업을 수행할 수 있습니다. $emit 메소드는 사용자 정의 이벤트를 트리거하고 이벤트를 수신하는 모든 구성요소에 지정된 매개변수를 전달하는 데 사용됩니다.

예제는 다음과 같습니다.

<!-- 组件A -->
<template>
  <div>
    <!-- 触发事件 -->
    <button @click="sendDataToB">传递数据给组件B</button>
  </div>
</template>

<script>
export default {
  methods: {
    sendDataToB() {
      // 发送事件
      this.$emit('sendData', '这是来自组件A的数据')
    }
  }
}
</script>
로그인 후 복사
<!-- 组件B -->
<template>
  <div>
    <!-- 监听事件并接收数据 -->
    <div>收到的数据:{{ receivedData }}</div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      receivedData: ''
    }
  },
  mounted() {
    // 监听事件
    this.$on('sendData', (data) => {
      this.receivedData = data
    })
  }
}
</script>
로그인 후 복사

이 예에서는 컴포넌트 A에 "sendData"라는 사용자 정의 이벤트를 등록하고 $emit 메소드를 사용하여 이벤트를 트리거했습니다. $emit 메소드는 이벤트를 수신하는 모든 구성요소에 "This is data from component A"라는 문자열을 매개변수로 전달합니다.

컴포넌트 B에서는 마운트된 라이프 사이클 후크의 $on 메소드를 사용하여 "sendData" 이벤트를 수신하고 응답 함수에서 컴포넌트 B의 receivedData 데이터를 업데이트합니다. 이 시점에서 컴포넌트 B는 컴포넌트 A로부터 전달된 데이터를 받을 수 있습니다.

부모가 아닌 구성 요소와 하위 구성 요소 간의 통신은 특수 이벤트 시스템을 사용하여 구현해야 합니다. 이렇게 하면 구성 요소 간에 인형이 무한하게 중첩되는 것을 방지하고 코드를 유지 관리하기 어렵게 만들 수 있습니다. 따라서 실제 개발에서는 구성 요소 간의 통신을 상위-하위 구성 요소로 제한하도록 노력해야 합니다.

위 내용은 Vue에서 관련 없는 구성요소에 매개변수를 전달하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿