Detailed explanation of how vue updates the value of the parent module

PHPz
Release: 2023-04-07 10:44:40
Original
1307 people have browsed it

Vue is a popular front-end framework with data-driven views at its core. In Vue, sharing data between parent and child components is a common need. When a value in the child component is updated, if you need to update the value in the parent component, you need to use Vue's event system.

Vue’s event system provides a communication mechanism between components. The component dispatches a custom event through the $emit method. The parent component can listen to this event and update the data.

Next, let’s introduce in detail how vue updates the value of the parent module.

1. Use props to pass data

In Vue’s communication mechanism between components, the parent component passes data to the child component through props, and the $emit method is used in the child component to trigger the event of the parent component. .

Define a data in the parent component and pass it to the child component through props. The code is as follows:

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
    })
  }
})
Copy after login

Define a method changeMessage in the child component. When the child component is clicked, Trigger the $emit method and pass the data content that needs to be updated.

Define a mounted hook function in the parent component to listen for events triggered by the child component. When the child component triggers the $emit method, the event handler in the parent component will be called and the data content will be updated.

2. Use $parent to access the parent component

In addition to using props to pass data, Vue also provides a way to access the parent component through $parent. Accessing the parent component through $parent can directly modify the data content in the parent component.

The following is a code example:

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'
  }
})
Copy after login

Access the parent component through this.$parent in the child component, and then directly modify the data content in the parent component.

However, using this method will cause tight coupling problems and is not recommended for use in formal projects.

3. Use $root to access the root component

In Vue, you can also use $root to access the root instance. Since each Vue instance has a corresponding root instance, you can use $root to access the data content in the root instance.

The following is a code example:

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'
  }
})
Copy after login

Access the root instance through this.$root in the subcomponent, and then directly modify the data content in the root instance.

However, using this method will also cause tight coupling problems, and is not recommended for use in formal projects.

4. Summary

In Vue, the child component can pass data to the parent component through the $emit and $on methods, and the parent component can pass data to the child component through props and v-model. data. At the same time, the data content in the parent component and root instance can be accessed through the $parent and $root methods, but it is not recommended to use it in formal projects.

The above introduces several ways for Vue to update the value of the parent module. Developers can choose the appropriate method according to different specific situations.

The above is the detailed content of Detailed explanation of how vue updates the value of the parent module. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!