您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關vue中父組件如何通過$refs獲取子組件的值的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
Vue是一套用于構建用戶界面的漸進式JavaScript框架,Vue與其它大型框架的區別是,使用Vue可以自底向上逐層應用,其核心庫只關注視圖層,方便與第三方庫和項目整合,且使用Vue可以采用單文件組件和Vue生態系統支持的庫開發復雜的單頁應用。
前言
在vue項目中組件之間的通訊是很常見的問題,同時也是很重要的問題,我們大致可以將其分為三種情況:
父傳子:在父組件中綁定值,在子組件中用props接收
子傳父:在父組件中監聽一個事件,在子組件中利用$emit觸發這個事件并帶上數據作為第二個參數,這時父組件中監聽事件的回調函數就會被調用,回調函數的參數就是子組件帶上來的數據,這樣就可以在父組件中使用子組件的數據了,
兄弟之間的傳遞:我們可以使用事件總線(eventBus)來輕松的解決,其實就是發布訂閱者模式
今天我們要看的是父組件如何直接調取子組件的數據和方法,而不是通過子組件傳上來的
在這里我們要理解父組件直接拿事件是在父組件上,子組件傳上來數據,事件是在子組件上,是完全不同的兩種情況
代碼展示
子組件 children.vue,我們在子組件中定義了數據sonData和方法sonMethod
// children.vue <template> <div>我是 children</div> </template> <script> export default { data: () => ({ sonData: '我是子組件的數據!' }), methods: { sonMethod() { console.log('我是子組件的方法!') } }, computed: { }, created() { } } </script>
父組件 文件
// 父組件 <template> <div> <children ref='ch'> </children> <h2 @click="onclick">父組件</h2> </div> </template> <script> import children from './coms/children' export default { data() { return {} }, components: { children }, methods: { onclick() { // 或者 let chil = this.$refs['ch'] let chil = this.$refs.ch // 父組件可以通過$refs拿到子組件的對象 // 然后直接調用子組件的 methods里的方法和data里的數據 console.log(chil) //子組件對象 console.log(chil.sonData) // 我是子組件的數據 console.log(chil.sonMethod()) // 我是子組件的方法 } } } </script>
注意事項
因為 ref 本身是作為渲染結果被創建的,在初始渲染的時候你不能訪問它們 - 它們還不存在!,所以它不是響應式的,不能用在模板或者計算屬性中。
感謝各位的閱讀!關于“vue中父組件如何通過$refs獲取子組件的值”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。