Rumah  >  Artikel  >  hujung hadapan web  >  Kaedah antara komponen vue memanggil satu sama lain

Kaedah antara komponen vue memanggil satu sama lain

WBOY
WBOYasal
2023-05-11 09:14:065286semak imbas

Dalam pembangunan komponen Vue, komponen boleh disarangkan antara satu sama lain, dan komponen dengan struktur berbeza selalunya perlu memanggil kaedah satu sama lain. Maksudnya, anda perlu melaksanakan kaedah di dalam komponen untuk memanggil kaedah dalam komponen lain. Seterusnya, mari kita perkenalkan cara kaedah antara komponen Vue memanggil satu sama lain.

1. Melalui komponen induk

Dalam pembangunan komponen Vue, setiap komponen mempunyai komponen induknya sendiri, dan komponen boleh memanggil satu sama lain. Kita boleh menentukan kaedah dalam komponen induk dan kemudian memanggil kaedah dalam komponen induk melalui $parent dalam komponen anak.

Mula-mula tentukan kaedah dalam komponen induk:

methods:{
  changeMsg:function(){
     this.msg='hello world';
  }
}

Kemudian gunakan ini.$parent.changeMsg() dalam komponen anak untuk memanggil kaedah dalam komponen induk.

2. Rujukan melalui komponen

Dalam pembangunan berasaskan komponen Vue, subkomponen boleh memperkenalkan komponen lain melalui import, dan terus memanggil kaedah memperkenalkan komponen dalam subkomponen.

Katakan kita ingin memanggil kaedah komponen B dalam komponen A. Pertama, komponen B mesti dimasukkan ke dalam komponen A, seperti yang ditunjukkan di bawah:

import B from '../B.vue'
export default {
  components: {
    B
  },...

}

Kemudian ia boleh digunakan terus dalam komponen A. this.$refs untuk mendapatkan contoh komponen B, dan kemudian panggil kaedah dalam komponen B.

this.$refs.b.test();

3. Melalui Vuex

Vuex ialah perpustakaan pengurusan negeri dalam Vue yang boleh mengurus keadaan global dengan mudah. Kami boleh mentakrifkan kaedah global dalam Vuex dan memanggil kaedah Vuex global melalui $store.dispatch dalam komponen.

Mula-mula kita perlu mentakrifkan kaedah dalam Vuex:

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store({
  state: {
    msg:'hello',
  },
  mutations: {
    changeMsg(state){
      state.msg='hello world';
    }
  },
  actions:{
    changeMsg({commit}){
      commit('changeMsg');
    }
  }
})

export default store;

Kemudian gunakan kod berikut dalam komponen untuk memanggil kaedah dalam Vuex:

this.$store.dispatch('changeMsg');

4. Melalui acara bas

Dalam Vue, kita boleh mencapai komunikasi antara komponen melalui bas acara. Pendekatan ini mengedarkan peristiwa ke pelbagai bahagian aplikasi dan membolehkan kami menghantar data antara komponen.

Kami boleh mencipta tika Vue kosong sebagai bas acara, dan kemudian memanggil bas acara dalam komponen untuk mencetuskan acara.

Mula-mula buat contoh Vue dalam main.js sebagai bas acara:

Vue.prototype.$bus = new Vue()

Kemudian dalam komponen anda boleh menggunakan kod berikut untuk mencetuskan acara:

 this.$bus.$emit('EVENT_NAME', data)

Akhir sekali dalam satu lagi Kod berikut boleh digunakan dalam komponen untuk menerima acara:

this.$bus.$on('EVENT_NAME', data => {
    // handle event
})

Melalui empat kaedah di atas, kami boleh melaksanakan kaedah antara komponen Vue untuk memanggil satu sama lain. Dalam aplikasi sebenar, kita boleh memilih kaedah yang paling sesuai dengan keperluan kita untuk melaksanakan panggilan kaedah antara komponen.

Atas ialah kandungan terperinci Kaedah antara komponen vue memanggil satu sama lain. 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
Artikel sebelumnya:linux vue digunakan untuk nginxArtikel seterusnya:linux vue digunakan untuk nginx