子组件调用父组件的方法
1.给父组件中给引用的子组件注册一个事件(这个事件是自定义的)
2.子组件可以触发这个事件$emit(‘事件名字’)
子组件给父组件传递数据
1.emit方法第二个参数可以定义子组件给父组件传递的内容
2.在父组件中怎么拿到这个内容
父组件这个方法没有自定参数,在父组件的方法直接加这个参数就可以拿到
父组件有自定义的参数,可以传入event也可以拿到子组件传递的数据。通过event只能传递第一个参数
<div id='app'>
<father></father>
</div>
<template id="father">
<div>
father-----{{fromSon}}
<son :num="num" @getson="getson($event,1,'123')"></son>
<son :num="num" @getson="getson($event,1,num)"></son>
<son :num="num" @getson="getson($event,1,num)"></son>
</div>
</template>
<template id="son">
<div>
son
{{num}}
<button @click="sendfather">传的父组件的值</button>
</div>
</template>
<script>
Vue.component('father',{
template:'#father',
data () {
return {
num:'10',
fromSon:''
}
},
methods: {
// 接收来自子组件的值
getson(data,data2,data3){
console.log(data);
}
}
})
Vue.component('son',{
template:'#son',
props:{
num:[Number,String]
},
methods: {
sendfather(){
// 第一个参数 自定义名字 第二个参数 传递的数据、
this.$emit('getson','传给父组件的值')
this.$emit('getson',{name:'传给父组件的值'})
this.$emit('getson','传给父组件的值','第二个')
}
},
created () {
this.$emit('getson','传给父组件的值','第二个')
}
})
const vm = new Vue({
el: '#app',
data: {
},
methods: {
}
})
</script>