vue組件間通信子與父詳解(二)
接著vue組件父與子通信詳解繼續(xù)學(xué)習(xí)。
二、組件間通信(子組件傳值給父組件)
通過事件的方式來(lái)完成數(shù)據(jù)的傳輸。
①在父組件中 定義一個(gè)方法,用來(lái)接收子組件所通過事件傳來(lái)的值
methods:{
recvMsg:function(msg){
//參數(shù)msg就是子組件通過事件出來(lái)的數(shù)據(jù)
}
}
②綁定事件處理函數(shù)
事件一般情況 都是自定義事件
<child-component @myEvent="recvMsg"></child-component>
③在子組件觸發(fā)事件
事件名,值
this.$emit('myEvent',myPhone)
//觸發(fā)一個(gè)叫做myEvent的事件,同時(shí)把第二個(gè)參數(shù)數(shù)據(jù)傳遞給事件對(duì)應(yīng)的處理函數(shù)
總結(jié):
在Vue 中,父子組件的關(guān)系可以總結(jié)為 props down, events up。父組件通過 props 向下傳遞數(shù)據(jù)給子組件,子組件通過 events 給父組件發(fā)送消息。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>組件間通信子傳父</title>
<script src="js/vue.js"></script>
</head>
<body>
<div id="container">
<p>{{msg}}</p>
<parent-component></parent-component>
</div>
<script>
//通過事件的方式傳遞
// 綁定 -- 觸發(fā)
Vue.component("parent-component",{
data:function(){
return {
sonMsg:""
}
},
methods:{
//msg參數(shù)要拿子傳遞的值
recvMsg:function(msg){
console.log("父組件接收到子組件的數(shù)據(jù)"+msg);
this.sonMsg = msg;
}
},
template:`
<div>
<h1>這是父組件</h1>
<p>子組件傳來(lái)的數(shù)據(jù)為:{{sonMsg}}</p>
<hr/>
<child-component @customEvent="recvMsg"></child-component>
</div>
`
})
Vue.component("child-component",{
methods:{
sendMsg:function(){
//來(lái)觸發(fā)綁定給子組件的自定義方法
//this.$emit("customEvent");第一個(gè)參數(shù)觸發(fā)
//this.$emit("customEvent");第二個(gè)參數(shù)傳值
this.$emit("customEvent","哈哈哈哈");
},
},
template:`
<div>
<h1>這是子組件</h1>
<button @click="sendMsg">senToFather</button>
</div>
`
})
new Vue({
el:"#container",
data:{
msg:"Hello VueJs"
}
})
</script>
</body>
</html>
在子組件中放上一個(gè)input,點(diǎn)擊按鈕 把用戶輸入的內(nèi)容發(fā)給父組件
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>子與父之間的通信</title>
<script src="js/vue.js"></script>
</head>
<body>
<div id="container">
<p>{{msg}}</p>
<parent-component></parent-component>
</div>
<script>
//創(chuàng)建父組件
Vue.component("parent-component",{
//data屬性
data:function(){
return{
sonMsg:""
}
},
methods:{
recvMsg:function(msg){
this.sonMsg = msg
}
},
template:`
<div>
<h1>父組件</h1>
<h4>子組件傳遞的數(shù)據(jù):{{sonMsg}}</h4>
<child-component @customEvent="recvMsg"></child-component>
</div>
`
})
//創(chuàng)建子組件
Vue.component("child-component",{
data:function(){
return {
myInput:""
}
},
methods:{
sendMsg:function(){
this.$emit("customEvent",this.myInput);
}
},
template:`
<div>
<h1>子組件</h1>
<input type="text" v-model="myInput"/>
<button @click="sendMsg">發(fā)送</button>
</div>
`
})
new Vue({
el:"#container",
data:{
msg:"Hello VueJs"
}
})
</script>
</body>
</html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue中用js如何實(shí)現(xiàn)循環(huán)可編輯表格
這篇文章主要介紹了vue中用js如何實(shí)現(xiàn)循環(huán)可編輯表格,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue中Axios從遠(yuǎn)程/后臺(tái)讀取數(shù)據(jù)
今天小編就為大家分享一篇關(guān)于Vue中Axios從遠(yuǎn)程/后臺(tái)讀取數(shù)據(jù),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01
Vue.js實(shí)現(xiàn)在下拉列表區(qū)域外點(diǎn)擊即可關(guān)閉下拉列表的功能(自定義下拉列表)
這篇文章主要介紹了Vue.js實(shí)現(xiàn)在下拉列表區(qū)域外點(diǎn)擊即可關(guān)閉下拉列表的功能(自定義下拉列表) ,需要的朋友可以參考下2017-05-05
vue實(shí)現(xiàn)四級(jí)導(dǎo)航及驗(yàn)證碼的方法實(shí)例
我們?cè)谧鲰?xiàng)目經(jīng)常會(huì)遇到多級(jí)導(dǎo)航這個(gè)需求,所以下面這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)四級(jí)導(dǎo)航及驗(yàn)證碼的相關(guān)資料,文章通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-07-07
Vue3使用ResizeObserver監(jiān)聽元素的尺寸寬度變化
要監(jiān)聽 div 寬度的變化,可以使用 ResizeObserver 接口,ResizeObserver 允許你觀察一個(gè)或多個(gè)元素的尺寸變化,并在發(fā)生變化時(shí)執(zhí)行回調(diào)函數(shù),所以本文給大家介紹了Vue3如何使用ResizeObserver監(jiān)聽元素的尺寸寬度變化,需要的朋友可以參考下2024-08-08
Vue如何用this.$set改變數(shù)組里的某個(gè)值
這篇文章主要介紹了Vue用this.$set改變數(shù)組里的某個(gè)值,文中通過示例代碼介紹了vue中this.$set()的用法----更新數(shù)組和對(duì)象的值,需要的朋友可以參考下2022-12-12
超詳細(xì)圖解如何運(yùn)行vue項(xiàng)目
Vue是一套用于構(gòu)建用戶界面的漸進(jìn)式框架,它的核心庫(kù)只關(guān)注視圖層,易于上手,也便于與其他庫(kù)或已有項(xiàng)目整合,下面這篇文章主要給大家介紹了關(guān)于如何運(yùn)行vue項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2023-05-05
vue-draggable實(shí)現(xiàn)拖拽表單的示例代碼
本文主要介紹了vue-draggable實(shí)現(xiàn)拖拽表單的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
VUE實(shí)時(shí)監(jiān)聽元素距離頂部高度的操作
這篇文章主要介紹了VUE實(shí)時(shí)監(jiān)聽元素距離頂部高度的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-07-07

