業務場景
當我們做相互性很強的界面時,會用到多個子組件,子組件傳值,我就不多說了,我之前的文章有提到,這篇就說下子組件執行父組件方法和另一個子組件的方法。
傳值說明的我的文章,有興趣可以看看:vue基礎語法以及父子組件如何相互傳值
子組件執行父組件方法和另一個子組件方法場景如下:
在A組件裏 點擊按鈕,執行到C組件裏的方法,並刷新數據。
存在問題及如何解決
我們的思路是通過組件C-A->B(子父子)
問題1:子組件直接執行父組件方法會失敗(this.parent)和vue devtools插件判斷結構
如下圖:vue devtools插件
解答問題1:
this . $ parent . $ parent . $ parent這樣就能達到父組件了
也就可以執行父方法了 this . $ parent . $ parent . $ parent.父方法
(你看上圖會問爲什麼會有這麼多層父組件,因爲我的是使用到了element裏內置多個組件)
如下圖:
2、如何到C子組件
已經到達了父組件C->A了,接下來,我們到B子組件,可以通過ref在父組件來綁定子組件
如圖:
最終效果,執行如下(成功執行到C子組件內的方法了):