Detailed explanation of the use of $emit in Vue.js

Detailed explanation of the use of $emit in Vue.js

1. Parent components can use props to pass data to child components.

2. Child components can use $emit to trigger custom events of parent components.

vm.$emit( ​​event, arg ) //Trigger the event on the current instance

vm.$on( event, fn ); //Run fn after listening to event;

For example: subcomponent:

<template>
  <div class="train-city">
    <h3>ToCity passed from parent component to child component:{{sendData}}</h3> 
    <br/><button @click='select(`Dalian`)'>Click here to emit 'Dalian' to the parent component</button>
  </div>
</template>
<script>
  export default {
    name:'trainCity',
    props:['sendData'], // Used to receive data passed from the parent component to the child component methods:{
      select(val) {
        let data = {
          cityname: val
        };
        this.$emit('showCityName',data);//After the select event is triggered, the showCityName event is automatically triggered}
    }
  }
</script>

Parent component:

<template>
    <div>
        <div>Parent component's toCity{{toCity}}</div>
        <train-city @showCityName="updateCity" :sendData="toCity"></train-city>
    </div>
<template>
<script>
  import TrainCity from "./train-city";
  export default {
    name:'index',
    components: {TrainCity},
    data () {
      return {
        toCity:"Beijing"
      }
    },
    methods:{
      updateCity(data){//Trigger the child component city selection-select city event this.toCity = data.cityname;//Change the value of the parent component console.log('toCity:'+this.toCity)
      }
    }
  }
</script>

Figure 1: Click on the previous data

Figure 2: Data after clicking

This is the end of this article about the detailed case study of $emit usage in Vue.js. For more relevant content on the usage of $emit in Vue.js, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Vue.js+boostrap project practice (case detailed explanation)
  • Vue.js implements tab switching and color change operation explanation
  • Detailed explanation of the usage of scoped slots in Vue.js slots
  • Vue.js implements calendar function
  • Vue.js implements timeline function
  • Vue.js manages the encapsulation of background table components
  • Ideas and practice of multi-language solution for Vue.js front-end project
  • 10 Best Practices for Building and Maintaining Large-Scale Vue.js Projects

<<:  Solve the problem of qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in Qt under Ubuntu 18.04

>>:  How to solve the problem of not finding the password after decompressing the MySQL free installation version

Recommend

Best Practices for Implementing Simple Jira Projects with React+TS

A set of projects for training react+ts Although ...

About MySQL innodb_autoinc_lock_mode

The innodb_autoinc_lock_mode parameter controls t...

Semantics: Is Html/Xhtml really standards-compliant?

<br />Original text: http://jorux.com/archiv...

JavaScript to achieve uniform animation effect

This article example shares the specific code for...

A brief discussion on the role of HTML empty links

Empty link: That is, there is no link with a targ...

In-depth explanation of currying of JS functions

Table of contents 1. Supplementary knowledge poin...

The process of deploying a project to another host using Jenkins

environment Hostname ip address Serve Jenkins 192...

Recommend 60 paging cases and good practices

<br />Structure and hierarchy reduce complex...

Detailed explanation of how to use JavaScript paging component

The pagination component is a common component in...

Detailed explanation of cross-usage of Ref in React

Table of contents 1. First, let’s explain what Re...

The perfect solution for Vue routing fallback (vue-route-manager)

Table of contents Routing Manager background gett...

MySQL uses variables to implement various sorting

Core code -- Below I will demonstrate the impleme...

Solution to docker suddenly not being accessible from the external network

According to the methods of the masters, the caus...

HTML Tutorial: Collection of commonly used HTML tags (6)

These introduced HTML tags do not necessarily ful...