Vue中一個組件調(diào)用其他組件的方法詳解(非父子組件)
前言
Vue中,一個組件調(diào)用其他組件的方法(非父子組件)
場景——B頁面(組件)想調(diào)用 A頁面(組件)中的方法;但是兩個頁面(組件)毫無關聯(lián)(刷新 A的數(shù)據(jù))。
方式一:引用式
1、當前組件引入將要調(diào)用方法所屬的組件
這里我的當前組件要調(diào)用OrderDetail
這個組件的check()
方法
import Detail from "./detail.vue";
該方法定義在OrderDetail
的methods屬性中
2、當前組件通過該組件methods屬性直接調(diào)用該方法
// 也可以調(diào)用 created、data等 Detail.methods.check();
方式二:vuex
使用 VueX 定義一個屬性 ,然后在A頁面 定義一個計算屬性(computed) 再把 vuex 的屬性返回給它,再監(jiān)聽這個計算屬性,發(fā)生變化就調(diào)用你要執(zhí)行的方法。
1、src/store/index.js
// Vuex 全局 state: { tableStatus:false } mutations:{ changeStatus(state,status) { // 重復賦值 state.tableStatus = status; }, }
2、被使用組件- A 頁面(組件)
// A 頁面(組件) computed: { status() { // 計算屬性 return this.$store.state.tableStatus; // Vuex 中定義的屬性 } }, watch:{ status() { this.getTableList(); // 需要調(diào)用的方法 } },
3、使用觸發(fā)頁面-B 頁面(組件)
然后就是在B 頁面定義一個點擊事件(舉例),重新給 Vuex中的屬性賦值就行了
// B頁面(組件) closePage() { let status = this.$store.state.tableStatus; // 重新賦值 this.$store.commit("changeStatus", !status); },
方式三:使用事件總線eventBus定義全局事件
1、src/main.js
window.eventBus = new Vue();
2、觸發(fā)頁面-B組件/發(fā)布事件
window.eventBus.$emit('setFeaturesData', data) // 帶參數(shù) window.eventBus.$emit('setFeaturesData') // 不帶參數(shù)
3、接收頁面-A組件/訂閱事件
window.eventBus.$on('setFeaturesData', (data)=>{ // 帶參數(shù) this.hoveredFeatures = [data] this.onClick() }) mounted() { this.getTableData() window.eventBus.$on('setFeaturesData', ()=>{ // 不帶參數(shù) this.getTableData() }) },
4、移除事件
window.eventBus.$off('setFeaturesData')
總結(jié)
到此這篇關于Vue中一個組件調(diào)用其他組件(非父子組件)的文章就介紹到這了,更多相關Vue組件調(diào)用其他組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- Vue3父子組件互調(diào)方法的實現(xiàn)
- Vue實現(xiàn)父子組件頁面刷新的幾種常用方法
- vue3?父子組件間相互傳值方式
- 關于Vue3父子組件emit參數(shù)傳遞問題(解決Vue2this.$emit無效問題)
- vue3自定義組件之v-model實現(xiàn)父子組件雙向綁定
- 淺析Vue3中通過v-model實現(xiàn)父子組件的雙向數(shù)據(jù)綁定及利用computed簡化父子組件雙向綁定
- Vue父子組件傳值的三種方法
- vue父子組件動態(tài)傳值的幾種方式及注意問題詳解
- Vue父子組件數(shù)據(jù)雙向綁定(父傳子、子傳父)及ref、$refs、is、:is的使用與區(qū)別
相關文章
Vue格式化數(shù)據(jù)后切換頁面出現(xiàn)NaN問題及解決
這篇文章主要介紹了Vue格式化數(shù)據(jù)后切換頁面出現(xiàn)NaN問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06vue3+vite中開發(fā)環(huán)境與生產(chǎn)環(huán)境全局變量配置指南
最近在使用vite生成項目,這篇文章主要給大家介紹了關于vue3+vite中開發(fā)環(huán)境與生產(chǎn)環(huán)境全局變量配置的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-08-08vue+electron實現(xiàn)創(chuàng)建多窗口及窗口間的通信(實施方案)
這篇文章主要介紹了vue+electron實現(xiàn)創(chuàng)建多窗口及窗口間的通信,本文給大家分享實施方案結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-09-09