cari
Rumahhujung hadapan webView.jsApakah cara untuk berkomunikasi antara komponen Vue?

Kaedah: 1. Berkomunikasi melalui nenek moyang yang sama "$parent" atau "$root"; parameter "$emit" ialah nilai yang diluluskan dan komponen adik beradik lain mendengar acara tersuai melalui "$on".

Apakah cara untuk berkomunikasi antara komponen Vue?

Persekitaran pengendalian artikel ini: sistem Windows 10, versi Vue 2.9.6, komputer DELL G3.

Apakah cara untuk berkomunikasi antara komponen Vue?

1. Konsep komunikasi antara komponen

Sebelum kita mulakan, kami meletakkan komponen Pisah perkataan komunikasi antara

Komponen

Komunikasi

Kita semua tahu bahawa komponen adalah salah satu fungsi yang paling berkuasa bagi vue .vue in vue. Ia adalah komponen

Komunikasi merujuk kepada pengirim yang menghantar maklumat kepada penerima melalui media tertentu dan format tertentu untuk mencapai tujuan tertentu. Dalam erti kata yang luas, trafik mana-mana maklumat adalah komunikasi

Komunikasi antara komponen bermaksud komponen (.vue) menghantar maklumat dengan cara tertentu untuk mencapai tujuan tertentu

Sebagai contoh

Apabila kami menggunakan komponen jadual dalam rangka kerja UI, kami mungkin menghantar data tertentu ke dalam komponen jadual Ini pada asasnya membentuk komunikasi antara komponen

2. Komponen Apakah yang dimaksudkan antara. -penyelesaian komunikasi?

Pada zaman dahulu, orang ramai menghantar maklumat melalui stesen pos, merpati terbang untuk menyampaikan mesej, penggera kebakaran suar, simbol, bahasa, mata, sentuhan, dll. Hari ini, bila-bila masa Dengan perkembangan pesat sains dan teknologi, komunikasi pada asasnya diselesaikan secara berwayar atau tanpa wayar Pelbagai kaedah komunikasi seperti telefon berwayar, telefon talian tetap, telefon tanpa wayar, telefon bimbit, Internet dan juga panggilan video telah muncul satu demi satu

<.>Daripada perenggan di atas, kita dapat melihat bahawa intipati komunikasi adalah penyegerakan maklumat, perkongsian

Kembali ke vue, setiap komponen mempunyai skopnya sendiri, dan data antara komponen tidak boleh dikongsi

Tetapi dalam kerja pembangunan sebenar, kita sering perlu berkongsi data antara komponen, yang juga merupakan tujuan komunikasi komponen

Adalah perlu bagi mereka untuk berkomunikasi antara satu sama lain, supaya membentuk sistem yang organik dan lengkap

2 Klasifikasi komunikasi antara komponen

Pengkelasan komunikasi antara komponen boleh dibahagikan kepada yang berikut

  • Komponen ibu bapa dan anak Komunikasi antara

  • Komunikasi antara komponen adik-beradik

  • Komunikasi antara nenek moyang dan keturunan

  • Komunikasi antara komponen bukan perhubungan

3. Pelan komunikasi antara komponen

Organisasi 8. penyelesaian komunikasi biasa dalam vue

  • Dihantarkan melalui prop

  • Cetuskan acara tersuai melalui $emit

  • Gunakan ref

  • EventBus

  • induk atau akar

  • attr dan pendengar

  • Sediakan dan Suntikan

  • Vuex

data pas props

Senario yang berkenaan: komponen induk menghantar data kepada komponen anak

Komponen anak menetapkan atribut props dan mentakrifkan parameter yang akan diterima daripada komponen induk

Komponen induk menggunakan literal apabila menggunakan anak tag komponen Untuk melepasi nilai

Children.vue

props:{
    // 字符串形式
 name:String // 接收的类型参数
    // 对象形式
    age:{  
        type:Number, // 接收的类型为数值
        defaule:18,  // 默认值为18
       require:true // age属性必须传递
    }
}
Komponen Father.vue

$emit mencetuskan peristiwa tersuai

Senario yang berkenaan: komponen kanak-kanak menghantar data kepada komponen induk

Komponen kanak-kanak mencetuskan peristiwa tersuai melalui $emit, $emit second parameter ialah nilai yang diluluskan

Komponen induk mengikat pendengar untuk mendapatkan parameter yang diluluskan oleh komponen anak

Chilfen.vue

this.$emit(&#39;add&#39;, good)
Father.vue
<Children @add="cartAdd($event)" />

ref

Komponen induk menetapkan rujukan apabila menggunakan komponen anak

Komponen induk memperoleh data dengan menetapkan rujukan komponen anak

Komponen induk

<Children ref="foo" />
this.$refs.foo  // 获取子组件实例,通过子组件实例我们就能拿到对应的数据

EventBus

Senario penggunaan: komponen adik-beradik lulus nilai

Buat bas masa pusat EventBus

Komponen adik-beradik mencetus peristiwa tersuai melalui $ emit, $emit Parameter kedua ialah nilai lulus

Komponen adik beradik lain mendengar acara tersuai melalui $on

Bus.js

// 创建一个中央时间总线类
class Bus {
  constructor() {
    this.callbacks = {};   // 存放事件的名字
  }
  $on(name, fn) {
    this.callbacks[name] = this.callbacks[name] || [];
    this.callbacks[name].push(fn);
  }
  $emit(name, args) {
    if (this.callbacks[name]) {
      this.callbacks[name].forEach((cb) => cb(args));
    }
  }
}
// main.js
Vue.prototype.$bus = new Bus() // 将$bus挂载到vue实例的原型上
// 另一种方式
Vue.prototype.$bus = new Vue() // Vue已经实现了Bus的功能
attrs dan pendengar

Senario yang boleh digunakan: Nenek moyang menghantar data kepada keturunan

Tetapkan atribut muat naik kelompok $attrs dan $listeners
this.$parent.on(&#39;add&#39;,this.add)

Mengandungi pengikatan sifat (kecuali kelas dan gaya) yang tidak diiktiraf (dan diperoleh) sebagai prop dalam skop induk.

this.$parent.emit(&#39;add&#39;)
Anda boleh lulus v-bind="$attrs" untuk lulus komponen dalaman

menyediakan dan menyuntik

dalam komponen ancestor Tentukan atribut sediakan dan kembalikan nilai yang diluluskan

Komponen keturunan menerima nilai yang diluluskan oleh komponen melalui suntikan

Komponen nenek moyang
// child:并未在props中声明foo
<p>{{$attrs.foo}}</p>
// parent
<HelloWorld foo="foo"/>
// 给Grandson隔代传值,communication/index.vue
<Child2 msg="lalala" @some-event="onSomeEvent"></Child2>
// Child2做展开
<Grandson v-bind="$attrs" v-on="$listeners"></Grandson>
// Grandson使⽤
<div @click="$emit(&#39;some-event&#39;, &#39;msg from grandson&#39;)">
{{msg}}
</div>

Komponen keturunan inject:['foo'] // Dapatkan nilai yang diluluskan oleh komponen nenek moyang

vuex

Senario yang berkenaan: Pemindahan data komponen dengan perhubungan yang kompleks

Vuex berfungsi sebagai bekas untuk menyimpan pembolehubah yang dikongsi

keadaan digunakan untuk menyimpan pembolehubah yang dikongsi

pengambil, anda boleh menambah keadaan terbitan pengambil, (bersamaan dengan stor di kedai Dikira atribut), digunakan untuk mendapatkan nilai pembolehubah yang dikongsi

mutasi digunakan untuk menyimpan kaedah untuk mengubah suai keadaan.

Tindakan juga digunakan untuk menyimpan kaedah untuk mengubah keadaan, tetapi tindakan adalah berdasarkan mutasi. Biasa digunakan untuk melakukan beberapa operasi tak segerak

Ringkasan

Untuk pemindahan data komponen perhubungan ibu bapa-anak, prop dan $emit boleh dipilih untuk pemindahan Anda juga boleh memilih ref

Untuk pemindahan data komponen perhubungan adik-beradik, anda boleh Pilih $bus, dan kemudian anda boleh memilih $parent untuk pemindahan

Untuk pemindahan data komponen moyang dan keturunan, anda boleh memilih attrs dan pendengar atau Provide dan Inject

Pemindahan data komponen untuk perhubungan yang kompleks boleh disimpan dan dikongsi melalui Pembolehubah vuex

[Cadangan berkaitan: "tutorial vue.js"]

Atas ialah kandungan terperinci Apakah cara untuk berkomunikasi antara komponen Vue?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
Vue.js vs React: Membandingkan prestasi dan kecekapanVue.js vs React: Membandingkan prestasi dan kecekapanApr 28, 2025 am 12:12 AM

Vue.js dan bertindak balas masing -masing mempunyai kelebihan mereka sendiri: vue.js sesuai untuk aplikasi kecil dan perkembangan pesat, sementara React sesuai untuk aplikasi besar dan pengurusan negara yang kompleks. 1.vue.js Menyedari kemas kini automatik melalui sistem responsif, sesuai untuk aplikasi kecil. 2. REACT menggunakan algoritma DOM dan Diff Virtual, yang sesuai untuk aplikasi besar dan kompleks. Apabila memilih rangka kerja, anda perlu mempertimbangkan keperluan projek dan timbunan teknologi pasukan.

Vue.js vs React: Komuniti, Ekosistem, dan SokonganVue.js vs React: Komuniti, Ekosistem, dan SokonganApr 27, 2025 am 12:24 AM

Vue.js dan bertindak balas masing -masing mempunyai kelebihan sendiri, dan pilihan harus berdasarkan keperluan projek dan tumpukan teknologi pasukan. 1. Vue.js adalah mesra komuniti, menyediakan sumber pembelajaran yang kaya, dan ekosistem termasuk alat rasmi seperti Vuerouter, yang disokong oleh pasukan rasmi dan masyarakat. 2. Komuniti React adalah berat sebelah terhadap aplikasi perusahaan, dengan ekosistem yang kuat, dan sokongan yang disediakan oleh Facebook dan komuniti, dan mempunyai kemas kini yang kerap.

React dan Netflix: Meneroka HubunganReact dan Netflix: Meneroka HubunganApr 26, 2025 am 12:11 AM

Netflix menggunakan React untuk meningkatkan pengalaman pengguna. 1) Ciri -ciri komponen React membantu Netflix Split Complex UI ke dalam modul yang boleh diurus. 2) Maya DOM mengoptimumkan kemas kini UI dan meningkatkan prestasi. 3) Menggabungkan Redux dan GraphQL, Netflix dengan cekap menguruskan status aplikasi dan aliran data.

VUE.JS vs Rangka Kerja Backend: Menjelaskan perbezaanVUE.JS vs Rangka Kerja Backend: Menjelaskan perbezaanApr 25, 2025 am 12:05 AM

Vue.js adalah kerangka depan, dan rangka kerja belakang digunakan untuk mengendalikan logik sisi pelayan. 1) Vue.js memberi tumpuan kepada membina antara muka pengguna dan memudahkan pembangunan melalui pengikatan data komponen dan responsif. 2) Rangka kerja back-end seperti Express dan Django mengendalikan permintaan HTTP, operasi pangkalan data dan logik perniagaan, dan dijalankan di pelayan.

Vue.js dan stack frontend: Memahami sambunganVue.js dan stack frontend: Memahami sambunganApr 24, 2025 am 12:19 AM

Vue.js disepadukan dengan tumpuan teknologi front-end untuk meningkatkan kecekapan pembangunan dan pengalaman pengguna. 1) Alat Pembinaan: Mengintegrasikan dengan Webpack dan Rollup untuk mencapai pembangunan modular. 2) Pengurusan Negeri: Bersepadu dengan VUEX untuk menguruskan status aplikasi yang kompleks. 3) Routing: Mengintegrasikan dengan Vuerouter untuk merealisasikan penghalaan aplikasi tunggal halaman. 4) Preprocessor CSS: Menyokong SASS dan kurang untuk meningkatkan kecekapan pembangunan gaya.

Netflix: Meneroka Penggunaan React (atau Rangka Kerja Lain)Netflix: Meneroka Penggunaan React (atau Rangka Kerja Lain)Apr 23, 2025 am 12:02 AM

Netflix memilih React untuk membina antara muka penggunanya kerana reka bentuk komponen React dan mekanisme DOM maya dapat mengendalikan antara muka yang kompleks dan kemas kini yang kerap. 1) Reka bentuk berasaskan komponen membolehkan Netflix memecah antara muka ke dalam widget yang boleh diurus, meningkatkan kecekapan pembangunan dan pemeliharaan kod. 2) Mekanisme DOM maya memastikan kelancaran dan prestasi tinggi antara muka pengguna Netflix dengan meminimumkan operasi DOM.

Vue.js dan frontend: menyelam mendalam ke dalam rangka kerjaVue.js dan frontend: menyelam mendalam ke dalam rangka kerjaApr 22, 2025 am 12:04 AM

Vue.js disukai oleh pemaju kerana mudah digunakan dan berkuasa. 1) Sistem pengikat data responsifnya secara automatik mengemas kini paparan. 2) Sistem komponen meningkatkan kebolehgunaan semula dan mengekalkan kod. 3) Ciri -ciri pengkomputeran dan pendengar meningkatkan kebolehbacaan dan prestasi kod. 4) Menggunakan vuedevtools dan memeriksa kesilapan konsol adalah teknik debugging biasa. 5) Pengoptimuman Prestasi termasuk penggunaan atribut utama, atribut yang dikira dan komponen-komponen Alive. 6) Amalan terbaik termasuk penamaan komponen yang jelas, penggunaan komponen fail tunggal dan penggunaan cangkuk kitaran hidup yang rasional.

Kekuatan Vue.js di Frontend: Ciri dan Manfaat UtamaKekuatan Vue.js di Frontend: Ciri dan Manfaat UtamaApr 21, 2025 am 12:07 AM

Vue.js adalah rangka kerja JavaScript yang progresif yang sesuai untuk membina aplikasi front-end yang cekap dan boleh dipelihara. Ciri -ciri utamanya termasuk: 1. Pengikatan data responsif, 2. Pembangunan Komponen, 3. Dom maya. Melalui ciri -ciri ini, Vue.js memudahkan proses pembangunan, meningkatkan prestasi aplikasi dan mengekalkan, menjadikannya sangat popular dalam pembangunan web moden.

See all articles

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

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular