vue 父子组件中的通信

2017-08-31  本文已影响0人  littleStar_up

父组件

<div><child @upup="change" :child-msg="data">

<div slot="slot1">父组件插入</div>

<child></div>

<div>{{childData}}</div>

export default {

components: {

child

},

data () {

return {

data: "from parent",

childData:""

}

},

methods:{

change(msg){

this.childData=msg;

this.data="parent change"

}

}

}

子组件

<li>{{msg}}</li>

<li><slot name="slot1">子组件<slot></li>

<li>{{childMsg}}<li>

<li><div@click="toParent">click To parent</div><li>

export default {

name:"child",

components: {

},

data () {

return {

msg: 'this is child',

data:"from child"

}

},

props:{

childMsg: {

type: String,

default: "null" //这样可以指定默认的值

}

},

methods:{

toParent(){

this.$emit('upup',this.data); //主动触发upup方法,'hehe'为向父组件传递的数据

}

}

}

子组件通过props来接收数据:

name:"child",

components: {

},

data () {

return {

msg: 'this is child',

data:"from child"

}

},

props:{

childMsg: {

type: String,

default: "null" //这样可以指定默认的值

}

},

methods:{

toParent(){

this.$emit('upup',this.data); //主动触发upup方法,'hehe'为向父组件传递的数据

}

}

}

父组件向子组件传值,子组件用props接受,data改变后,子组件内childMsg也改变

子组件向父组件传值,用事件,父组件接受事件要加在子组件上

顺便用了slot当子组件模板只有slot 时,父组件内容片段将插入到 slot 所在的 DOM 位置,并替换掉 slot 标签本身。

点击前 点击后

查看上述代码

上一篇下一篇

猜你喜欢

热点阅读