vue 父子組件通訊props/emit

   props

1.父組件傳遞數據給子組件

父組件:css

<parent>
    <child :childMsg="msg"></child>//這裏必需要用 - 代替駝峯
</parent>

data(){
    return {
        msg: [1,2,3]
    };
}

子組件經過props來接收數據: 
方式1:vue

props: ['childMsg']

方式2 :this

props: { childMsg: Array //這樣能夠指定傳入的類型,若是類型不對,會警告 }

方式3:spa

props: {
    childMsg: {
        type: Array, default: [0,0,0] //這樣能夠指定默認的值 } }

2.子組件與父組件通訊

若子組件想要改變數據?code

這在vue中是不容許的,由於vue只容許單向數據傳遞,咱們能夠經過觸發事件來通知父組件改變數據,從而達到改變子組件數據的目的.blog

子組件:事件

<template>
    <div @click="up"></div>
</template>

methods: {
    up() {
        this.$emit('up','hello'); //主動觸發up方法,'hello'爲向父組件傳遞的數據
    }
}

父組件:string

<div>
    <child @up="change" :msg="msg"></child> //監聽子組件觸發的upup事件,而後調用change方法
</div>
methods: { change(msg) { this.msg = msg; } }
相關文章
相關標籤/搜索