>  기사  >  웹 프론트엔드  >  vue가 상위 모듈의 값을 업데이트하는 방법에 대한 자세한 설명

vue가 상위 모듈의 값을 업데이트하는 방법에 대한 자세한 설명

PHPz
PHPz원래의
2023-04-07 09:30:331308검색

Vue는 데이터 중심 뷰를 핵심으로 하는 인기 있는 프런트 엔드 프레임워크입니다. Vue에서는 상위 구성 요소와 하위 구성 요소 간의 데이터 공유가 일반적인 요구 사항입니다. 하위 구성요소의 값이 업데이트될 때 상위 구성요소의 값을 업데이트해야 하는 경우 Vue의 이벤트 시스템을 사용해야 합니다.

Vue의 이벤트 시스템은 구성 요소 간의 통신 메커니즘을 제공합니다. 구성 요소는 $emit 메서드를 통해 사용자 정의 이벤트를 전달합니다. 상위 구성 요소는 이 이벤트를 수신하고 데이터를 업데이트할 수 있습니다.

이제 vue가 상위 모듈의 값을 업데이트하는 방법을 자세히 소개하겠습니다.

1. props를 사용하여 데이터 전달

Vue의 구성 요소 간 통신 메커니즘에서 상위 구성 요소는 props를 통해 하위 구성 요소에 데이터를 전달하고 하위 구성 요소에서는 $emit 메서드를 사용하여 상위 구성 요소의 이벤트를 트리거합니다.

상위 구성 요소에 데이터를 정의하고 이를 props를 통해 하위 구성 요소에 전달합니다. 코드는 다음과 같습니다.

Vue.component('child', {
  props: ['message'],
  template: '<div @click="changeMessage">{{ message }}</div>',
  methods: {
    changeMessage() {
      this.$emit('update:message', 'update message from child component')
    }
  }
})

var app = new Vue({
  el: '#app',
  data: {
    message: 'hello vue'
  },
  mounted() {
    this.$on('update:message', message => {
      this.message = message
    })
  }
})

하위 구성 요소에서 ChangeMessage 메소드를 정의하면 $emit 메소드가 트리거됩니다. 및 필수 업데이트된 데이터 콘텐츠.

하위 구성 요소에 의해 트리거되는 이벤트를 수신하려면 상위 구성 요소에 마운트된 후크 기능을 정의하세요. 하위 구성 요소가 $emit 메서드를 트리거하면 상위 구성 요소의 이벤트 핸들러가 호출되고 데이터 콘텐츠가 업데이트됩니다.

2. $parent를 사용하여 상위 구성 요소에 액세스

props를 사용하여 데이터를 전달하는 것 외에도 Vue는 $parent를 통해 상위 구성 요소에 액세스하는 방법도 제공합니다. $parent를 통해 상위 구성 요소에 액세스하면 상위 구성 요소의 데이터 내용을 직접 수정할 수 있습니다.

다음은 코드 예시입니다.

Vue.component('child', {
  template: '<div @click="changeMessage">{{ message }}</div>',
  methods: {
    changeMessage() {
      this.$parent.message = 'update message from child component'
    }
  }
})

var app = new Vue({
  el: '#app',
  data: {
    message: 'hello vue'
  }
})

하위 컴포넌트에서 this.$parent를 통해 상위 컴포넌트에 접근한 후, 상위 컴포넌트의 데이터 내용을 직접 수정합니다.

그러나 이 방법을 사용하면 긴밀한 결합 문제가 발생하므로 공식적인 프로젝트에는 사용하지 않는 것이 좋습니다.

3. $root를 사용하여 루트 구성 요소에 액세스합니다.

Vue에서는 $root를 사용하여 루트 인스턴스에 액세스할 수도 있습니다. 각 Vue 인스턴스에는 해당 루트 인스턴스가 있으므로 $root를 사용하여 루트 인스턴스의 데이터 콘텐츠에 액세스할 수 있습니다.

다음은 코드 예시입니다.

Vue.component('child', {
  template: '<div @click="changeMessage">{{ message }}</div>',
  methods: {
    changeMessage() {
      this.$root.message = 'update message from child component'
    }
  }
})

var app = new Vue({
  el: '#app',
  data: {
    message: 'hello vue'
  }
})

하위 컴포넌트의 this.$root를 통해 루트 인스턴스에 액세스한 후 루트 인스턴스의 데이터 내용을 직접 수정합니다.

그러나 이 방법을 사용하면 단단한 결합 문제가 발생할 수도 있으므로 공식 프로젝트에서는 사용하지 않는 것이 좋습니다.

4. 요약

Vue에서 하위 구성 요소는 $emit 및 $on 메서드를 통해 상위 구성 요소에 데이터를 전달할 수 있으며, 상위 구성 요소는 props 및 v-model을 통해 하위 구성 요소에 데이터를 전달할 수 있습니다. 동시에 상위 구성 요소 및 루트 인스턴스의 데이터 콘텐츠는 $parent 및 $root 메서드를 통해 액세스할 수 있지만 공식 프로젝트에서는 사용하지 않는 것이 좋습니다.

위에서는 Vue가 상위 모듈의 값을 업데이트하는 여러 가지 방법을 소개합니다. 개발자는 다양한 특정 상황에 따라 적절한 방법을 선택할 수 있습니다.

위 내용은 vue가 상위 모듈의 값을 업데이트하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.