vue子組件獲取到它父組件數(shù)據(jù)的4種方法
前言
在Vue組件中,可以通過props屬性來接收來自父組件的數(shù)據(jù),然后在組件中使用這些數(shù)據(jù)。如果父組件需要將它的數(shù)據(jù)傳遞給子組件,可以將這些數(shù)據(jù)通過props傳遞給子組件。
如果要在子組件中獲取嵌套它的頁面的數(shù)據(jù),可以使用Vue的依賴注入功能來實現(xiàn)。依賴注入允許父組件向子組件傳遞一些全局的依賴項,包括數(shù)據(jù)、方法、插件等等。子組件可以通過訪問父組件的$parent屬性來獲取其父組件的數(shù)據(jù),但這種方法不太優(yōu)雅,而且容易受到組件層次結(jié)構(gòu)的影響。
下面是一種更為優(yōu)雅的方法,使用Vue的依賴注入來獲取嵌套它的頁面的數(shù)據(jù):
0,普遍的是用this.$parent即可
this.$parent.someData
1,在父組件中定義一個全局的數(shù)據(jù)對象,將要傳遞給子組件的數(shù)據(jù)保存在這個對象中:
export default {
data() {
return {
globalData: {
// 要傳遞給子組件的數(shù)據(jù)
someData: 'Hello world'
}
}
}
}2, 在父組件的模板中,使用provide屬性將全局?jǐn)?shù)據(jù)對象注入到組件實例中:
<template>
<div>
<child-component></child-component>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
data() {
return {
globalData: {
// 要傳遞給子組件的數(shù)據(jù)
someData: 'Hello world'
}
}
},
provide() {
return {
globalData: this.globalData
}
}
}
</script>3,在子組件中,使用inject屬性來注入父組件傳遞的全局?jǐn)?shù)據(jù)對象,然后就可以在子組件中使用這些數(shù)據(jù)了:
<template>
<div>
<p>{{ globalData.someData }}</p>
</div>
</template>
<script>
export default {
inject: ['globalData']
}
</script>在上面的代碼中,父組件使用provide屬性將全局?jǐn)?shù)據(jù)對象注入到組件實例中。子組件使用inject屬性來注入父組件傳遞的全局?jǐn)?shù)據(jù)對象,然后就可以在子組件中通過this.globalData訪問這些數(shù)據(jù)了。
需要注意的是,provide和inject屬性只能用于祖先組件向后代組件傳遞數(shù)據(jù),而不適用于子組件向父組件傳遞數(shù)據(jù)。如果需要在子組件中修改父組件的數(shù)據(jù),應(yīng)該使用事件和$emit方法來實現(xiàn)。
總結(jié)
到此這篇關(guān)于vue子組件獲取到它父組件數(shù)據(jù)的4種方法的文章就介紹到這了,更多相關(guān)vue子組件獲取父組件數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- vue父組件中獲取子組件中的數(shù)據(jù)(實例講解)
- vue父組件異步獲取數(shù)據(jù)傳給子組件的方法
- 詳解VUE里子組件如何獲取父組件動態(tài)變化的值
- Vue父組件如何獲取子組件中的變量
- vue 父組件通過$refs獲取子組件的值和方法詳解
- vue.js 子組件無法獲取父組件store值的解決方式
- vue實現(xiàn)父組件獲取子組件的方法或?qū)傩灾翟斀?/a>
- vue子組件如何獲取父組件的內(nèi)容(props屬性)
- vue中實現(xiàn)子組件接收父組件方法并獲取返回值
- VUE父組件異步獲取數(shù)據(jù),子組件接收的值為空的問題
- vue父組件異步如何獲取數(shù)據(jù)傳給子組件
- vue3父組件使用ref獲取子組件的屬性和方法
- vue子組件實時獲取父組件的數(shù)據(jù)實現(xiàn)
相關(guān)文章
Vue登錄后添加動態(tài)路由并跳轉(zhuǎn)的實踐分享
這篇文章講給大家詳細(xì)介紹一下Vue如何實現(xiàn)登錄后添加動態(tài)路由并跳轉(zhuǎn),文章通過代碼示例介紹的非常詳細(xì),對我們的學(xué)習(xí)或工作有一定的的幫助,需要的朋友可以參考下2023-07-07
Vue3 + Element Plus 省市區(qū)縣級聯(lián)組件封裝,支持 v
本文介紹了如何封裝一個支持省市區(qū)三級聯(lián)動的通用復(fù)用組件,實現(xiàn)v-model雙向綁定、數(shù)據(jù)回顯、清空、禁用聯(lián)動等功能,提高開發(fā)效率和項目可維護(hù)性,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2026-04-04

