<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
</head>
<body>
<div id="app">
<!--父组件向子组件传递方法,使用的是事件绑定机制 v-on,当我们自定义了一个事件属性之后,那么子组件就能够通过某些方式,来调用传递进去的这个方法了-->
<com1 v-on:func="show"></com1>
</div>
<template id="tmp1">
<div>
<h1 @click="myclick">这是子组件</h1>
</div>
</template>
<script>
var vm=new Vue({
el:"#app",
data:{
fromSon:null
},
methods:{
show(data){
console.log("这是父组件的一个方法:"+data);
this.fromSon=data;
}
},
components:{
com1:{
data(){
return{
sonmsg:{name:'儿子',age:'10'}
}
},
template:'#tmp1',
methods:{
myclick(){
//emit是触发,调用,发射的意思
this.$emit('func',this.sonmsg);
console.log(this.sonmsg);
}
}
}
}
})
</script>
</body>
</html>