Vue組件通信浑侥、雙向綁定

一细睡、組件之間的通信

父組件向子組件傳遞
  1. props
  2. this.$parents
    應(yīng)急方法(包括$children)
子組件向父組件傳遞
  1. $emit$on
    自定義事件
<div id="message-event-example" class="demo">
  <p v-for="msg in messages">{{ msg }}</p>
  <button-message v-on:message="handleMessage"></button-message>
</div>
Vue.component('button-message', {
  template: `<div>
    <input type="text" v-model="message" />
    <button v-on:click="handleSendMessage">Send</button>
  </div>`,
  data: function () {
    return {
      message: 'test message'
    }
  },
  methods: {
    handleSendMessage: function () {
      this.$emit('message', { message: this.message })
    }
  }
})

new Vue({
  el: '#message-event-example',
  data: {
    messages: []
  },
  methods: {
    handleMessage: function (payload) {
      this.messages.push(payload.message)
    }
  }
})
  1. ref
    ref在普通DOM上使用勤揩,引用指向的就是DOM元素,如果是組件俗或,就是組件實(shí)例
非父子組件通信

通過eventBus

參考博客

官方的例子

var bus = new Vue()
// 觸發(fā)組件 A 中的事件
bus.$emit('id-selected', 1)
// 在組件 B 創(chuàng)建的鉤子中監(jiān)聽事件
bus.$on('id-selected', function (id) {
  // ...
})

二市怎、雙向綁定

.sync語法糖

官方說明

v-model

官當(dāng)說明

v-model實(shí)際上是v-bindv-on的語法糖,當(dāng)使用v-model時辛慰,默認(rèn)為

<input
  v-bind:value="something"
  v-on:input="something = $event.target.value">

因此区匠,v-model也可用用于父子組件,通過自定義v-model,修改相應(yīng)的值和方法

model: {
    prop: 'checked',
    event: 'change'
  },
<my-checkbox v-model="foo" value="some value"></my-checkbox>

等價于

<my-checkbox
  :checked="foo"
  @change="val => { foo = val }"
  value="some value">
</my-checkbox>
傳遞對象

父組件

<template>
  <div class="hello">
    <h1>{{ data.text }}</h1>
    <child :obj="data"></child>
  </div>
</template>
<script>
import Child from './Child'
export default {
  name: 'HelloWorld',
  components: {
    Child
  },
  data () {
    return {
      data: {
        text: 'this is parent'
      },
      msg: 'Welcome to Your Vue.js App'
    }
  }
}
</script>

子組件

<template>
  <div class="child">
    {{ obj.text }}
    <button @click="add">change</button>
  </div>
</template>
<script>
export default {
  props: {
    obj: Object
  },
  methods: {
    add () {
      this.obj.text = 'this is child'
    }
  }
}
</script>

點(diǎn)擊change按鈕驰弄,父子組件都變成了子組件的text


parent.png

child.png

當(dāng)然麻汰,也可以在父組件上加一個按鈕,改變這個data

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末戚篙,一起剝皮案震驚了整個濱河市五鲫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌岔擂,老刑警劉巖位喂,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異乱灵,居然都是意外死亡塑崖,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門阔蛉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弃舒,“玉大人,你說我怎么就攤上這事状原×兀” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵颠区,是天一觀的道長削锰。 經(jīng)常有香客問我,道長毕莱,這世上最難降的妖魔是什么器贩? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮朋截,結(jié)果婚禮上蛹稍,老公的妹妹穿的比我還像新娘。我一直安慰自己部服,他們只是感情好唆姐,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著廓八,像睡著了一般奉芦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上剧蹂,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天声功,我揣著相機(jī)與錄音,去河邊找鬼宠叼。 笑死先巴,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播筹裕,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼醋闭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了朝卒?” 一聲冷哼從身側(cè)響起证逻,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎抗斤,沒想到半個月后囚企,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瑞眼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年龙宏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伤疙。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡银酗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出徒像,到底是詐尸還是另有隱情黍特,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布锯蛀,位于F島的核電站灭衷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏旁涤。R本人自食惡果不足惜翔曲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望劈愚。 院中可真熱鬧瞳遍,春花似錦、人聲如沸菌羽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽算凿。三九已至份蝴,卻和暖如春犁功,著一層夾襖步出監(jiān)牢的瞬間氓轰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工浸卦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留署鸡,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像靴庆,于是被迫代替她去往敵國和親时捌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

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