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

CSS3 to achieve timeline effects

Recently, when I turned on my computer, I saw tha...

Example of how to deploy Spring Boot using Docker

Here we mainly use spring-boot out of the box, wh...

Summary of bootstrap learning experience-css style design sharing

Due to the needs of the project, I plan to study ...

About the IE label LI text wrapping problem

I struggled with this for a long time, and after s...

Use simple jQuery + CSS to create a custom a tag title tooltip

Introduction Use simple jQuery+CSS to create a cus...

Three networking methods and principles of VMware virtual machines (summary)

1. Brigde——Bridge: VMnet0 is used by default 1. P...

vue-cropper component realizes image cutting and uploading

This article shares the specific code of the vue-...

MySQL/MariaDB Root Password Reset Tutorial

Preface Forgotten passwords are a problem we ofte...

Scoring rules of YSlow, a webpage scoring plugin developed by Yahoo

YSlow is a page scoring plug-in developed by Yaho...

Design Theory: Ten Tips for Content Presentation

<br /> Focusing on the three aspects of text...

Analysis of the Poor Performance Caused by Large Offset of LIMIT in MySQL Query

Preface We all know that MySQL query uses the sel...

Linux uses bond to implement dual network cards to bind a single IP sample code

In order to provide high availability of the netw...