Vue組件的父子通信

一杯矩、父組件向子組件

  • ref抓歼,被用來給元素或子組件注冊引用信息。所以父組件在引用子組件時(shí)论寨,就會用到ref來注冊引用信息赖临,如ref="b"胞锰,b代表注冊在父組件上的名稱,通過這個(gè)名稱可以找到該組件兢榨,如下:
<template id="aaa">
    <div>
        <button @click="get">get</button>
        <bbb ref="b"></bbb>
        </div>
</template>
<script>
        Vue.component("aaa",{
        template:"#aaa",
        methods:{
            get(){
                console.log(this.$refs);
                this.$refs.b.msg = "get"
            }
        }
    })          
</script>
  • 當(dāng)綁定在父組件上的get()事件被觸發(fā)時(shí)嗅榕,可以通過this.refs獲得子組件的注冊信息,通過注冊名即可找到該組件吵聪,this.refs.b即可獲取組件的信息凌那,這時(shí)可以通過該方法改變子組件的屬性,this.$refs.b.msg = "get"把子組件中的數(shù)據(jù)msg的值改成了get暖璧,完成了父->子的通信
  • 子組件的信息就會被注冊到父組件上:
<template id="bbb">
    <div>
        <input type="text" v-model="msg">
    </div>
</template>
<script>
    Vue.component("bbb",{
        template:"#bbb",
        data(){
            return {
                msg:"hello"
            }
        }
    })     
</script>

二案怯、子組件向父組件

1.通過props通信

  • (1)子組件在自身綁定一個(gè)方法,并且把要傳到的父組件的數(shù)據(jù)放到方法的參數(shù)里面->@click="change(msg)"澎办,并且在本身通過props的方式把方法傳遞過去->props:["change”]嘲碱,如下:
 <template id="son">
    <div>
        <p>這是子組件</p>
        <p>
            <button @click="change(msg)">我要對父親說的話金砍!</button>
        </p>
    </div>
</template>
<script>
    Vue.component("son", {
         template: "#son",
         props:["change"],
         data() {
             return {
                 msg: "今天很舒服"
             }
         }
    })
</script>
  • (2)父組件在引用子組件時(shí),在子組件上綁定一個(gè)和props傳過來的同名事件麦锯,在該事件上綁定本身的一個(gè)方法->:change=“changeMsg”恕稠,當(dāng)點(diǎn)擊的時(shí)候,就會觸發(fā)子組件的方法扶欣,自身的方法也會觸發(fā)鹅巍,傳入的參數(shù)為子組件的參數(shù),changeMsg(msg){}料祠,里面即可執(zhí)行相關(guān)操作骆捧,從用子組件的數(shù)據(jù)改變自身的數(shù)據(jù)
<template id="father">
    <div>
        <p>這是父組件</p>
        <p>這是我兒子要和我說的話 ===> {{pMsg}}</p>
        <hr>
        <son :change="changeMsg"></son>
    </div>
</template>
<script>
    Vue.component("father", {
        template: "#father",
        data() {
            return {
                pMsg: ""
            }
        },
        methods:{
            changeMsg(msg){
                this.pMsg = msg
            }
        }
    })
</script>

2.通過emit通信

  • (1)子組件給自身綁定一個(gè)方法,該方法內(nèi)用寫上this.$emit("change",this.msg)髓绽,該方法在父組件點(diǎn)擊時(shí)會自動觸發(fā)執(zhí)行敛苇,從而把數(shù)據(jù)傳遞過去
<template id="son">
    <div>
        <p>這是子組件</p>
        <p>
            <button @click="say">我要對父親說的話!</button>
        </p>
    </div>
</template>
<script>
    Vue.component("son", {
        template: "#son",
        data() {
            return {
                msg: "今天很舒服"
            }
        },
        methods:{
            say(){
                this.$emit("change",this.msg)
            }
        }
    })
</script>
  • (2)父組件在引用子組件時(shí)顺呕,綁定一個(gè)和傳遞過來的同名事件枫攀,同時(shí)綁定寫上一個(gè)父組件本身的方法->@change="changeMsg",當(dāng)同名事件被觸發(fā)時(shí)株茶,該方法也被觸發(fā)来涨,該方法的參數(shù)寫上子組件傳遞過來的參數(shù),即可完成子組件向父組件的通信
<template id="father">
    <div>
        <p>這是父組件</p>
        <p>這是我兒子要和我說的話 ===> {{pMsg}}</p>
        <hr>
        <son @change="changeMsg"></son>
    </div>
</template>
<script>
    Vue.component("father", {
        template: "#father",
        data() {
            return {
                pMsg: ""
            }
        },
        methods:{
            changeMsg(msg){
                this.pMsg = msg
            }
        }
    })     
</script>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末启盛,一起剝皮案震驚了整個(gè)濱河市蹦掐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌驰徊,老刑警劉巖笤闯,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堕阔,死亡現(xiàn)場離奇詭異棍厂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)超陆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門牺弹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人时呀,你說我怎么就攤上這事张漂。” “怎么了谨娜?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵航攒,是天一觀的道長。 經(jīng)常有香客問我趴梢,道長漠畜,這世上最難降的妖魔是什么币他? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮憔狞,結(jié)果婚禮上蝴悉,老公的妹妹穿的比我還像新娘。我一直安慰自己瘾敢,他們只是感情好拍冠,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著簇抵,像睡著了一般庆杜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碟摆,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天欣福,我揣著相機(jī)與錄音,去河邊找鬼焦履。 笑死拓劝,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嘉裤。 我是一名探鬼主播郑临,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼屑宠!你這毒婦竟也來了厢洞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤典奉,失蹤者是張志新(化名)和其女友劉穎躺翻,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卫玖,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡公你,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了假瞬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陕靠。...
    茶點(diǎn)故事閱讀 40,424評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖脱茉,靈堂內(nèi)的尸體忽然破棺而出剪芥,到底是詐尸還是另有隱情,我是刑警寧澤琴许,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布税肪,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏益兄。R本人自食惡果不足惜签财,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望偏塞。 院中可真熱鬧唱蒸,春花似錦、人聲如沸灸叼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽古今。三九已至屁魏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捉腥,已是汗流浹背氓拼。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抵碟,地道東北人桃漾。 一個(gè)月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像拟逮,于是被迫代替她去往敵國和親撬统。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 父子組件通信 1敦迄、父子組件通過prop傳遞數(shù)據(jù) 父組件可以將一條數(shù)據(jù)傳遞給子組件恋追,這條數(shù)據(jù)可以是動態(tài)的,父組件的數(shù)...
    視覺派Pie閱讀 1,267評論 0 18
  • 1.父組件傳遞數(shù)據(jù)給子組件 父組件數(shù)據(jù)如何傳遞給子組件呢罚屋?可以通過props屬性來實(shí)現(xiàn)父組件://這里必須要用 -...
    Splendid飛羽閱讀 28,320評論 7 14
  • Vue 實(shí)例 屬性和方法 每個(gè) Vue 實(shí)例都會代理其 data 對象里所有的屬性:var data = { a:...
    云之外閱讀 2,220評論 0 6
  • 首先 vue 組件化的一個(gè)框架苦囱。既然是組件化。那么一定存在組件和組件之間傳值的問題 在討論組件和組件怎么傳值的問題...
    人話博客閱讀 1,158評論 0 50
  • 9.1 什么是組件脾猛? 組件(Component)是 Vue.js 最強(qiáng)大的功能之一撕彤。組件可以擴(kuò)展 HTML 元素,...
    白水螺絲閱讀 781評論 0 2