Vue父組件和子組件之間數(shù)據(jù)傳遞和方法調(diào)用
vue組件在通信中,無論是子組件向父組件傳值還是父組件向子組件傳值,他們都有一個共同點就是有中間介質(zhì),子向父的介質(zhì)是自定義事件,父向子的介質(zhì)是props中的屬性。
父組件向子組件傳值(子組件主動獲取父組件的數(shù)據(jù)和方法)
父組件import引用子組件 使用子組件時在子組件上添加一個v-bind屬性,并綁定上數(shù)據(jù) 在子組件中創(chuàng)建 props ,在props 中創(chuàng)建相同的屬性名,用來接收數(shù)據(jù) 把接收到的數(shù)據(jù)在子組件中使用
子組件向父組件傳值(父組件主動獲取子組件的數(shù)據(jù)和方法)
子組件中需要發(fā)出該自定義事件,可以是按鈕的點擊事件,也可以是其他方式 將需要傳的值放在 $emit 第二個參數(shù)的位置,這個參數(shù)會被傳給父組件中的響應(yīng)方法 需要在父組件中使用子組件并在子組件標(biāo)簽上綁定對事件的監(jiān)聽
演示代碼:
//父組件
<template>
<div id="header">
<headerchild ref="headerChild"></headerchild>
<button @click="getChild()">父組件獲取子組件的數(shù)據(jù)和方法</button>
</div>
</template>
<script>
import HeaderChild from './HeaderChild'
export default {
data () {
return {
title:'我是父組件的數(shù)據(jù)'
}
},
methods: {
getChild (){
console.log(this.$refs.headerChild.name)
},
run (){
console.log("我是父組件里面的方法")
}
},
components: {
'headerchild': HeaderChild
}
}
</script>
<style lang="sass" scoped>
</style>//子組件
<template>
<div id="headerchild">
<button @click="getParent()">獲取父組件的數(shù)據(jù)和方法</button>
</div>
</template>
<script>
export default {
data () {
return {
name:'我是子組件里面的數(shù)據(jù)'
}
},
methods:{
getParent(){
console.log(this.$parent.title) /*獲取整個父組件*/
this.$parent.run()/*獲取父組件的方法*/
}
},
props:['title','run','home'] /*通過props接收父組件傳遞過來的數(shù)據(jù) */
}
</script>
到此這篇關(guān)于Vue父組件和子組件之間數(shù)據(jù)傳遞和方法調(diào)用的文章就介紹到這了,更多相關(guān)Vue父組件和子組件互相傳值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vite結(jié)合whistle實現(xiàn)一勞永逸開發(fā)環(huán)境代理方案
這篇文章主要為大家介紹了Vite結(jié)合whistle實現(xiàn)一勞永逸開發(fā)環(huán)境代理方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
關(guān)于vue-cli3+webpack熱更新失效及解決
這篇文章主要介紹了關(guān)于vue-cli3+webpack熱更新失效及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-04-04
vue.js 實現(xiàn)v-model與{{}}指令方法
這篇文章主要介紹了vue.js 實現(xiàn)v-model與{{}}指令方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10

