Jadual Kandungan
Apakah cara untuk berkomunikasi antara komponen Vue?
Rumah hujung hadapan web View.js Apakah cara untuk berkomunikasi antara komponen Vue?

Apakah cara untuk berkomunikasi antara komponen Vue?

Mar 24, 2022 pm 05:41 PM
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属性必须传递
    }
}
Salin selepas log masuk
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)" />
Salin selepas log masuk

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  // 获取子组件实例,通过子组件实例我们就能拿到对应的数据
Salin selepas log masuk

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));
    }
  }
}
Salin selepas log masuk
// main.js
Vue.prototype.$bus = new Bus() // 将$bus挂载到vue实例的原型上
// 另一种方式
Vue.prototype.$bus = new Vue() // Vue已经实现了Bus的功能
Salin selepas log masuk
< . komponen
Children1.vue
this.$bus.$emit(&#39;foo&#39;)
Children2.vue
this.$bus.$on(&#39;foo&#39;, this.handle)
Salin selepas log masuk

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)
Salin selepas log masuk

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

this.$parent.emit(&#39;add&#39;)
Salin selepas log masuk
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"/>
Salin selepas log masuk
// 给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>
Salin selepas log masuk

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 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)

Topik panas

Tutorial Java
1658
14
Tutorial PHP
1257
29
Tutorial C#
1231
24
Cara menggunakan bootstrap di vue Cara menggunakan bootstrap di vue Apr 07, 2025 pm 11:33 PM

Menggunakan bootstrap dalam vue.js dibahagikan kepada lima langkah: Pasang bootstrap. Import bootstrap di main.js. Gunakan komponen bootstrap secara langsung dalam templat. Pilihan: Gaya tersuai. Pilihan: Gunakan pemalam.

Cara menambah fungsi ke butang untuk vue Cara menambah fungsi ke butang untuk vue Apr 08, 2025 am 08:51 AM

Anda boleh menambah fungsi ke butang VUE dengan mengikat butang dalam templat HTML ke kaedah. Tentukan kaedah dan tulis logik fungsi dalam contoh Vue.

Cara Menggunakan Watch di Vue Cara Menggunakan Watch di Vue Apr 07, 2025 pm 11:36 PM

Pilihan Watch di Vue.js membolehkan pemaju mendengar perubahan dalam data tertentu. Apabila data berubah, tontonkan mencetuskan fungsi panggil balik untuk melakukan paparan kemas kini atau tugas lain. Pilihan konfigurasinya termasuk segera, yang menentukan sama ada untuk melaksanakan panggilan balik dengan serta -merta, dan mendalam, yang menentukan sama ada untuk mendengarkan secara rekursif terhadap objek atau tatasusunan.

Apakah yang dimaksudkan dengan pembangunan Vue Multi-Page? Apakah yang dimaksudkan dengan pembangunan Vue Multi-Page? Apr 07, 2025 pm 11:57 PM

Pembangunan pelbagai halaman Vue adalah cara untuk membina aplikasi menggunakan rangka kerja VUE.JS, di mana permohonan dibahagikan kepada halaman berasingan: Penyelenggaraan kod: Memisahkan aplikasi ke dalam beberapa halaman boleh menjadikan kod lebih mudah untuk dikendalikan dan diselenggarakan. Modularity: Setiap halaman boleh digunakan sebagai modul yang berasingan untuk penggunaan semula dan penggantian mudah. Routing mudah: Navigasi antara halaman boleh diuruskan melalui konfigurasi penghalaan mudah. Pengoptimuman SEO: Setiap halaman mempunyai URL sendiri, yang membantu SEO.

Cara kembali ke halaman sebelumnya oleh Vue Cara kembali ke halaman sebelumnya oleh Vue Apr 07, 2025 pm 11:30 PM

Vue.js mempunyai empat kaedah untuk kembali ke halaman sebelumnya: $ router.go (-1) $ router.back () menggunakan & lt; router-link to = & quot;/& quot; Komponen Window.History.Back (), dan pemilihan kaedah bergantung pada tempat kejadian.

Cara Menggunakan Vue Traversal Cara Menggunakan Vue Traversal Apr 07, 2025 pm 11:48 PM

Terdapat tiga kaedah umum untuk vue.js untuk melintasi tatasusunan dan objek: Arahan V-untuk digunakan untuk melintasi setiap elemen dan membuat templat; Arahan V-mengikat boleh digunakan dengan V-untuk menetapkan nilai atribut secara dinamik untuk setiap elemen; dan kaedah .map boleh menukar elemen array ke dalam tatasusunan baru.

React vs Vue: Rangka kerja mana yang digunakan oleh Netflix? React vs Vue: Rangka kerja mana yang digunakan oleh Netflix? Apr 14, 2025 am 12:19 AM

NetflixusesAcustomFrameworkcalled "gibbon" Builtonreact, notreactorsvuedirectly.1) TeamExperience: chectionBasedOnfamiliarity.2) ProjectOplePlexity: VueforsImplerProjects, ReactForComplexones.3)

Cara merujuk fail js dengan vue.js Cara merujuk fail js dengan vue.js Apr 07, 2025 pm 11:27 PM

Terdapat tiga cara untuk merujuk kepada fail JS dalam vue.js: Secara langsung tentukan jalan menggunakan & lt; skrip & gt; tag ;; import dinamik menggunakan cangkuk kitaran hayat yang dipasang (); dan mengimport melalui Perpustakaan Pengurusan Negeri VUEX.

See all articles