Table of Contents
The parent component passes data to the child component
The parent component needs to do a total of 2 things
But because they are non-parent-child components, they need an intermediate component to connect.
Get data through window.localStorage.getItem(key)
Home Web Front-end JS Tutorial Sharing examples of 4 Vue component communication methods

Sharing examples of 4 Vue component communication methods

Feb 07, 2018 pm 02:23 PM
Example Way communication

This article mainly shares with you four Vue component communication methods: communication between parent and child components, eventBus communication between non-parent and child components, component communication using local cache, and Vuex communication. Hope it helps everyone.

The first communication method: parent-child component communication

The parent component passes data to the child component

  • The parent component needs to do a total of 4 things Things

    • 1.import son from './son.js' Register all sub-component names in "son"}

    • 3. Apply the sub-component in the template of the parent component,

    • 4. If you need to pass data to the subcomponent, write

    • in the template

       // 1.引入子组件 
           import counter from './counter'     import son from './son'
      Copy after login
      // 2.在ccmponents里注册子组件    components : {
              counter,
              son
          },
      Copy after login
      // 3.在template里使用子组件   <son></son>
      Copy after login
           
       // 4.如果需要传递数据,也是在templete里写
       
         <counter :num="number"></counter>
      Copy after login
    The sub-component only needs to do one thing
  • 1. Use props to accept data, and you can use the data directly
    • 2. The data received by the sub-component cannot be modified. If you really need to modify it, you can use calculated properties, or assign the data to a variable in the child component data

    •        

         // 1.用Props接受数据      props: [               'num'
                 ],
      Copy after login
             
      // 2.如果需要修改得到的数据,可以这样写
         props: [            'num'
              ],  data () {        return {
                  number : this.num
              }
          },
      Copy after login
      The child component passes data to the parent component

The parent component needs to do a total of 2 things

  • Define the event in the template
    • In Write functions in methods to listen to the event triggering of sub-components

    •        

      // 1. 在templete里应用子组件时,定义事件changeNumber
            <counter :num="number"                 @changeNumber="changeNumber"
            >
            </counter>
      Copy after login
             
      // 2. 用changeNumber监听事件是否触发
              methods: {
                  changeNumber(e){                console.log('子组件emit了',e);                this.number = e
                  },
              }
      Copy after login
    The sub-component needs a total of 1 thing
  • #After the data changes, use $emit to trigger it
    •      

      // 1. 子组件在数据变化后,用$emit触发即可,第二个参数可以传递参数
              methods: {
                  increment(){                    this.number++                    this.$emit('changeNumber', this.number)
                      },
              }
      Copy after login
      The second communication method: eventBus
    eventBus communication This method is aimed at communication between non-parent and child components, and its principle is still through event triggering and monitoring.

But because they are non-parent-child components, they need an intermediate component to connect.

I use it by defining a component that can be accessed by all components on the root component, which is the #app component. The specific usage is as follows

Using eventBus to pass data, we have a total of Three things need to be done

1. Add the Bus attribute to the app component (so that all components can access it through this.$root.Bus, and there is no need to introduce any files)

  • 2. In component 1, this.$root.Bus.$emit triggers the event

  • 3. In component 2, this. $root.Bus.$on listening event

  •        
    // 1.在main.js里给app组件,添加bus属性import Vue from 'vue'new Vue({
      el: '#app',
      components: { App },  template: '<App/>',
      data(){    return {
          Bus : new Vue()
        }
      }
    })
    Copy after login
             
    // 2.在组件1里,触发emitincrement(){
            this.number++
            this.$root.Bus.$emit('eventName', this.number)
        },
    Copy after login
           
    // 3.在组件2里,监听事件,接受数据mounted(){    this.$root.Bus.$on('eventName', value => {        this.number = value
            console.log('busEvent');
        })
    },
    Copy after login

    The third communication method: using localStorage or sessionStorage

  • This kind of communication is relatively simple, the disadvantage is that the data and The state is relatively chaotic and not easy to maintain.

Get data through window.localStorage.getItem(key)

Store data through window.localStorage.setItem(key, value)

Please use JSON.parse() / JSON.stringify () Convert data format.


The fourth communication method: using Vuex

Vuex is more complicated, you can write a separate article

Related recommendations:

Vue component development experience sharing

Detailed explanation of parent-child communication of vue components

Detailed explanation of dynamic loading of Vue component instances in the permission management module

The above is the detailed content of Sharing examples of 4 Vue component communication methods. For more information, please follow other related articles on the PHP Chinese website!

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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

New generation of optical fiber broadband technology - 50G PON New generation of optical fiber broadband technology - 50G PON Apr 20, 2024 pm 09:22 PM

In the previous article (link), Xiao Zaojun introduced the development history of broadband technology from ISDN, xDSL to 10GPON. Today, let’s talk about the upcoming new generation of optical fiber broadband technology-50GPON. █F5G and F5G-A Before introducing 50GPON, let’s talk about F5G and F5G-A. In February 2020, ETSI (European Telecommunications Standards Institute) promoted a fixed communication network technology system based on 10GPON+FTTR, Wi-Fi6, 200G optical transmission/aggregation, OXC and other technologies, and named it F5G. That is, the fifth generation fixed network communication technology (The5thgenerationFixednetworks). F5G is a fixed network

Analysis of communication between Vue and server: How to deal with network disconnection Analysis of communication between Vue and server: How to deal with network disconnection Aug 10, 2023 am 10:55 AM

Analysis of Vue and server-side communication: Strategies for dealing with network outages Introduction: In modern web development, Vue.js has become a widely used front-end framework. However, due to the instability of the network environment, handling disconnections is an important issue that we need to consider. This article will analyze how to handle network disconnection in Vue and give corresponding code examples. 1. Analysis of disconnection situations When the network conditions are good, Vue can communicate with the server through Ajax requests or WebSocket. but,

The development history of wireless mice The development history of wireless mice Jun 12, 2024 pm 08:52 PM

Original title: "How does a wireless mouse become wireless?" 》Wireless mice have gradually become a standard feature of today’s office computers. From now on, we no longer have to drag long cords around. But, how does a wireless mouse work? Today we will learn about the development history of the No.1 wireless mouse. Did you know that the wireless mouse is now 40 years old? In 1984, Logitech developed the world's first wireless mouse, but this wireless mouse used infrared as a The signal carrier is said to look like the picture below, but later failed due to performance reasons. It was not until ten years later in 1994 that Logitech finally successfully developed a wireless mouse that works at 27MHz. This 27MHz frequency also became the wireless mouse for a long time.

A brief history of broadband Internet technology A brief history of broadband Internet technology Apr 16, 2024 am 09:00 AM

In today's digital age, broadband has become a necessity for each of us and every family. Without it, we would be restless and restless. So, do you know the technical principles behind broadband? From the earliest 56k "cat" dial-up to the current Gigabit cities and Gigabit homes, what kind of changes has our broadband technology experienced? In today’s article, let’s take a closer look at the “Broadband Story”. Have you seen this interface between █xDSL and ISDN? I believe that many friends born in the 70s and 80s must have seen it and are very familiar with it. That's right, this was the interface for "dial-up" when we first came into contact with the Internet. That was more than 20 years ago, when Xiao Zaojun was still in college. In order to surf the Internet, I

Methods and techniques for implementing Socket communication in PHP Methods and techniques for implementing Socket communication in PHP Mar 07, 2024 pm 02:06 PM

PHP is a commonly used development language that can be used to develop various web applications. In addition to common HTTP requests and responses, PHP also supports network communication through Sockets to achieve more flexible and efficient data interaction. This article will introduce the methods and techniques of how to implement Socket communication in PHP, and attach specific code examples. What is Socket Communication Socket is a method of communication in a network that can transfer data between different computers. by S

Nokia plans to sell its device management and service management platform businesses for €185 million Nokia plans to sell its device management and service management platform businesses for €185 million Dec 21, 2023 am 08:07 AM

Nokia today announced the sale of its device management and service management platform business to Lumine Group for €185 million, which is expected to close in the first quarter of next year. According to our findings, Lumine is a communications and media software company that was recently spun off from Constellation Software. come out. As part of the deal, approximately 500 Nokia employees are expected to join Lumine. According to public information, the business of these platforms was mainly formed by Nokia through its two previous acquisitions of Motive and mFormation. Lumine said it intends to revive the Motive brand as an independent business unit. Lumine said the acquisition price includes a sum of up to

The main peak of Changbai Mountain can access the Internet normally: Jilin Mobile and ZTE completed 2.6G + 700M three-carrier aggregation for commercial use, with a peak rate of more than 2.53Gbps The main peak of Changbai Mountain can access the Internet normally: Jilin Mobile and ZTE completed 2.6G + 700M three-carrier aggregation for commercial use, with a peak rate of more than 2.53Gbps Jul 25, 2024 pm 01:20 PM

According to news on July 25, Jilin Mobile and ZTE have completed commercial use of three-carrier aggregation based on the 2.6G frequency band (100+60M) and the 700M frequency band (30M) on the main peak of Changbai Mountain. The peak rate in field testing can reach more than 2.53Gbps. Officials pointed out that Changbai Mountain is one of the top ten famous mountains in China. It is now a national AAAAA tourist attraction, a world geological park, a world biosphere reserve, and the world's best nature reserve. The number of tourists received in 2023 will reach 2.7477 million, and 3CC will be deployed this time. It will greatly meet users’ network needs. According to reports, Jilin Mobile has taken the lead in completing the carrier aggregation pilot of a three-carrier network in the 2.6G (100+60M) plus 4.9G (100M) frequency band in early 2024, with peak downloads

Learn best practice examples of pointer conversion in Golang Learn best practice examples of pointer conversion in Golang Feb 24, 2024 pm 03:51 PM

Golang is a powerful and efficient programming language that can be used to develop various applications and services. In Golang, pointers are a very important concept, which can help us operate data more flexibly and efficiently. Pointer conversion refers to the process of pointer operations between different types. This article will use specific examples to learn the best practices of pointer conversion in Golang. 1. Basic concepts In Golang, each variable has an address, and the address is the location of the variable in memory.

See all articles