Jadual Kandungan
父组件向子组件传递数据
子组件向父组件传递数据
第二种通信方式: eventBus
第三种通信方式: 利用localStorage或者sessionStorage
第四种通信方式: 利用Vuex
Rumah hujung hadapan web tutorial js 4种Vue组件通信方式实例分享

4种Vue组件通信方式实例分享

Feb 07, 2018 pm 02:23 PM
Contoh Cara komunikasi

本文主要和大家分享4种Vue组件通信方式:父子组件的通信、非父子组件的eventBus通信、利用本地缓存实现组件通信、Vuex通信。希望能帮助到大家。

第一种通信方式:父子组件通信

父组件向子组件传递数据

  • 父组件一共需要做4件事

    • 1.import son from './son.js' 引入子组件 son

    • 2.在components : {"son"} 里注册所有子组件名称

    • 3.在父组件的template应用子组件,

    • 4.如果需要传递数据给子组件,就在template模板里写

           
 // 1.引入子组件 
     import counter from './counter'     import son from './son'
Salin selepas log masuk
           
// 2.在ccmponents里注册子组件    components : {
        counter,
        son
    },
Salin selepas log masuk
           
// 3.在template里使用子组件   <son></son>
Salin selepas log masuk
           
 // 4.如果需要传递数据,也是在templete里写
 
   <counter :num="number"></counter>
Salin selepas log masuk
  • 子组件只需要做1件事

    • 1.用props接受数据,就可以直接使用数据

    • 2.子组件接受到的数据,不能去修改。如果你的确需要修改,可以用计算属性,或者把数据赋值给子组件data里的一个变量

           
   // 1.用Props接受数据      props: [               'num'
           ],
Salin selepas log masuk
           
// 2.如果需要修改得到的数据,可以这样写
   props: [            'num'
        ],  data () {        return {
            number : this.num
        }
    },
Salin selepas log masuk

子组件向父组件传递数据

  • 父组件一共需要做2件事情

    • 在template里定义事件

    • 在methods里写函数,监听子组件的事件触发

           
// 1. 在templete里应用子组件时,定义事件changeNumber
      <counter :num="number"                 @changeNumber="changeNumber"
      >
      </counter>
Salin selepas log masuk
           
// 2. 用changeNumber监听事件是否触发
        methods: {
            changeNumber(e){                console.log('子组件emit了',e);                this.number = e
            },
        }
Salin selepas log masuk
  • 子组件一共需要1件事情

    • 在数据变化后,用$emit触发即可

           
// 1. 子组件在数据变化后,用$emit触发即可,第二个参数可以传递参数
        methods: {
            increment(){                    this.number++                    this.$emit('changeNumber', this.number)
                },
        }
Salin selepas log masuk

第二种通信方式: eventBus

eventBus这种通信方式,针对的是非父子组件之间的通信,它的原理还是通过事件的触发和监听。

但是因为是非父子组件的关系,他们需要有一个中间组件来连接。

我是使用的通过在根组件,也就是#app组件上定义了一个所有组件都可以访问到的组件,具体使用方式如下

使用eventBus传递数据,我们一共需要做3件事情

  • 1.给app组件添加Bus属性 (这样所有组件都可以通过this.$root.Bus访问到它,而且不需要引入任何文件)

  • 2.在组件1里,this.$root.Bus.$emit触发事件

  • 3.在组件2里,this.$root.Bus.$on监听事件

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

第三种通信方式: 利用localStorage或者sessionStorage

这种通信比较简单,缺点是数据和状态比较混乱,不太容易维护。

通过window.localStorage.getItem(key) 获取数据
通过window.localStorage.setItem(key,value) 存储数据

注意用JSON.parse() / JSON.stringify() 做数据格式转换。

第四种通信方式: 利用Vuex

Vuex比较复杂,可以单独写一篇

相关推荐:

Vue组件化开发经验分享

vue组件父与子通信详解

权限管理模块中动态加载Vue组件实例详解

Atas ialah kandungan terperinci 4种Vue组件通信方式实例分享. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Generasi baharu teknologi jalur lebar gentian optik - 50G PON Generasi baharu teknologi jalur lebar gentian optik - 50G PON Apr 20, 2024 pm 09:22 PM

Dalam artikel (pautan) sebelum ini, Xiao Zaojun memperkenalkan sejarah pembangunan teknologi jalur lebar daripada ISDN, xDSL kepada 10GPON. Hari ini, mari kita bercakap tentang generasi baharu teknologi jalur lebar gentian optik-50GPON yang akan datang. █F5G dan F5G-A Sebelum memperkenalkan 50GPON, mari kita bincangkan dahulu tentang F5G dan F5G-A. Pada Februari 2020, ETSI (European Telecommunications Standards Institute) mempromosikan sistem teknologi rangkaian komunikasi tetap berdasarkan 10GPON+FTTR, Wi-Fi6, transmisi/pengagregatan optik 200G, OXC dan teknologi lain, dan menamakannya F5G. Itu merupakan generasi kelima tetap teknologi komunikasi rangkaian (The5thgenerationFixednetworks). F5G ialah rangkaian tetap

Analisis komunikasi antara Vue dan pelayan: Cara menangani pemutusan rangkaian Analisis komunikasi antara Vue dan pelayan: Cara menangani pemutusan rangkaian Aug 10, 2023 am 10:55 AM

Analisis Vue dan komunikasi sisi pelayan: Strategi untuk menangani gangguan rangkaian Pengenalan: Dalam pembangunan web moden, Vue.js telah menjadi rangka kerja bahagian hadapan yang digunakan secara meluas. Walau bagaimanapun, disebabkan oleh ketidakstabilan persekitaran rangkaian, pengendalian situasi terputus sambungan merupakan isu penting yang perlu dipertimbangkan. Artikel ini akan menganalisis cara mengendalikan pemutusan rangkaian dalam Vue dan memberikan contoh kod yang sepadan. 1. Analisis situasi putus sambungan Apabila keadaan rangkaian baik, Vue boleh berkomunikasi dengan pelayan melalui permintaan Ajax atau WebSocket. tetapi,

Sejarah pembangunan tetikus tanpa wayar Sejarah pembangunan tetikus tanpa wayar Jun 12, 2024 pm 08:52 PM

Tajuk asal: "Bagaimanakah tetikus wayarles menjadi wayarles?" 》Tetikus wayarles secara beransur-ansur menjadi ciri standard komputer pejabat hari ini, kita tidak perlu lagi menyeret kord panjang. Tetapi, bagaimanakah tetikus wayarles berfungsi? Hari ini kita akan belajar tentang sejarah pembangunan tetikus wayarles No.1 Tahukah anda bahawa tetikus wayarles kini berusia 40 tahun Pada tahun 1984, Logitech membangunkan tetikus wayarles pertama di dunia, tetapi tetikus wayarles ini menggunakan inframerah sebagai isyarat? pembawa dikatakan kelihatan seperti gambar di bawah, tetapi kemudiannya gagal kerana sebab prestasi. Sehingga tahun 1994, sepuluh tahun kemudian, Logitech akhirnya berjaya membangunkan tetikus wayarles yang berfungsi pada 27MHz Frekuensi 27MHz ini juga menjadi tetikus tanpa wayar untuk masa yang lama.

Sejarah ringkas teknologi Internet jalur lebar Sejarah ringkas teknologi Internet jalur lebar Apr 16, 2024 am 09:00 AM

Dalam era digital hari ini, jalur lebar telah menjadi satu keperluan bagi setiap daripada kita dan setiap keluarga. Tanpanya, kita akan resah dan gelisah. Jadi, adakah anda tahu prinsip teknikal di sebalik jalur lebar? Daripada dial-up 56k "kucing" terawal ke bandar Gigabit semasa dan rumah Gigabit, apakah jenis perubahan yang telah dialami oleh teknologi jalur lebar kami? Dalam artikel hari ini, mari kita lihat dengan lebih dekat "Kisah Jalur Lebar". Pernahkah anda melihat antara muka ini antara █xDSL dan ISDN? Saya percaya ramai rakan-rakan yang lahir pada tahun 70-an dan 80-an pasti pernah melihatnya dan sangat mengenalinya. Betul, ini adalah antara muka untuk "dial-up" semasa kami mula-mula bersentuhan dengan Internet. Itu lebih daripada 20 tahun yang lalu, ketika Xiao Zaojun masih di kolej. Untuk melayari Internet, saya

Kaedah dan teknik untuk melaksanakan komunikasi Soket dalam PHP Kaedah dan teknik untuk melaksanakan komunikasi Soket dalam PHP Mar 07, 2024 pm 02:06 PM

PHP ialah bahasa pembangunan yang biasa digunakan yang boleh digunakan untuk membangunkan pelbagai aplikasi web. Selain permintaan dan respons HTTP biasa, PHP juga menyokong komunikasi rangkaian melalui Soket untuk mencapai interaksi data yang lebih fleksibel dan cekap. Artikel ini akan memperkenalkan kaedah dan teknik bagaimana untuk melaksanakan komunikasi Soket dalam PHP, dan melampirkan contoh kod tertentu. Apa itu Socket Communication Socket ialah kaedah komunikasi dalam rangkaian yang boleh memindahkan data antara komputer yang berbeza. oleh S

Nokia merancang untuk menjual perniagaan platform pengurusan peranti dan pengurusan perkhidmatannya pada harga €185 juta Nokia merancang untuk menjual perniagaan platform pengurusan peranti dan pengurusan perkhidmatannya pada harga €185 juta Dec 21, 2023 am 08:07 AM

Nokia hari ini mengumumkan penjualan pengurusan peranti dan perniagaan platform pengurusan perkhidmatannya kepada Lumine Group dengan harga €185 juta, yang dijangka akan ditutup pada suku pertama tahun depan Menurut penemuan kami, Lumine ialah sebuah syarikat perisian komunikasi dan media baru-baru ini dikeluarkan daripada Perisian Constellation. Sebagai sebahagian daripada perjanjian itu, kira-kira 500 pekerja Nokia dijangka menyertai Lumine Menurut maklumat awam, perniagaan platform ini terutamanya dibentuk oleh Nokia melalui dua pemerolehan sebelumnya iaitu Motive dan mFormation. Lumine berkata ia berhasrat untuk menghidupkan semula jenama Motive sebagai unit perniagaan bebas Lumine berkata harga pemerolehan termasuk jumlah sehingga

Puncak utama Gunung Changbai boleh mengakses Internet seperti biasa: Jilin Mobile dan ZTE melengkapkan pengagregatan tiga pembawa 2.6G + 700M untuk kegunaan komersial, dengan kadar puncak lebih daripada 2.53Gbps Puncak utama Gunung Changbai boleh mengakses Internet seperti biasa: Jilin Mobile dan ZTE melengkapkan pengagregatan tiga pembawa 2.6G + 700M untuk kegunaan komersial, dengan kadar puncak lebih daripada 2.53Gbps Jul 25, 2024 pm 01:20 PM

Menurut berita pada 25 Julai, Jilin Mobile dan ZTE telah menyelesaikan penggunaan komersial pengagregatan tiga pembawa berdasarkan jalur frekuensi 2.6G (100+60M) dan jalur frekuensi 700M (30M) di puncak utama Gunung Changbai kadar dalam ujian lapangan boleh mencapai lebih daripada 2.53Gbps. Pegawai menyatakan bahawa Gunung Changbai adalah salah satu daripada sepuluh gunung terkenal di China Ia kini menjadi tarikan pelancong AAAAA negara, taman geologi dunia, rizab biosfera dunia, dan rizab alam semula jadi terbaik di dunia pada tahun 2023 akan mencapai 2.7477 juta, dan 3CC akan digunakan kali ini. Ia akan sangat memenuhi keperluan rangkaian pengguna. Menurut laporan, Jilin Mobile telah menerajui dalam melengkapkan perintis pengagregatan pembawa bagi rangkaian tiga pembawa dalam jalur frekuensi 2.6G (100+60M) ditambah 4.9G (100M) pada awal 2024, dengan muat turun puncak

Ketahui contoh amalan terbaik penukaran penunjuk di Golang Ketahui contoh amalan terbaik penukaran penunjuk di Golang Feb 24, 2024 pm 03:51 PM

Golang ialah bahasa pengaturcaraan yang berkuasa dan cekap yang boleh digunakan untuk membangunkan pelbagai aplikasi dan perkhidmatan. Di Golang, penunjuk ialah konsep yang sangat penting, yang boleh membantu kami mengendalikan data dengan lebih fleksibel dan cekap. Penukaran penunjuk merujuk kepada proses operasi penunjuk antara jenis yang berbeza Artikel ini akan menggunakan contoh khusus untuk mempelajari amalan terbaik penukaran penunjuk di Golang. 1. Konsep asas Di Golang, setiap pembolehubah mempunyai alamat, dan alamat adalah lokasi pembolehubah dalam ingatan.

See all articles