<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>子传父</title>
</head>
<body>
<div id="app">
<son @get="getson"></son>
<global @glo="getglo"></global>
</div>
</body>
<script src="./vue.js"></script>
<script>
Vue.component("global",{
data:function (){
return {
mes:"我是全局组件"
}
},
template: "<p @click='post'>全局组价</p>",
methods:{
// post:()=>{
// this.$emit("glo", this.mes)
// },
post: function(){
console.log(this)
this.$emit("glo", this.mes)
}
}
})
let vm=new Vue({
el:"#app",
data:{
mes:""
},
components:{
"son":{
data:function(){
return {
mesSon:"I am son"
}
},
template:"<p @click='send'>局部组件</p>",
methods: {
send:function(){
this.$emit("get",this.mesSon)
}
},
}
},
methods: {
getson:function(data){
console.log(data);
},
getglo:function(data){
console.log(data);
}
},
})
/*
首先子组件包括全局组件,局部组件。
如何将子组件的数据传递给父组件,这里用到子组件的一个事件属性。$emit
$emit 必须在事件中使用。有两个参数,第一个参数是事件名,第二个参数是子组件的数据,也就是需要传的数据。
然后,父组件怎样才能接收到子组件传过来的数据呢?需要在实例中绑定一个函数,这个函数的参数值就是子组件传过来的数据。
最后将子组件放到挂载点中。(这里要注意一点,在子组件中封装的事件函数为自定义事件,需要在子组件中绑定)
*/
</script>
</html>
vue基础之组件子传父
猜你喜欢
转载自blog.csdn.net/qq_39045645/article/details/89951480
今日推荐
周排行