Vue父组件向子组件传递方法(自定义方法)并且子组件向父组件传递数据

时间:2022-08-03 19:24:58
<!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>Document</title> <script src="./lib/vue-2.4.0.js"></script>
</head>
<body> <div class="app">
<!-- 父组件向子组件传递方法,使用的是事件绑定机制,v-on 当我们自定义一个事件属性之后,那么子组件就能够通过某些方法来
调用,传递进去的这个方法了 -->
<log v-bind:dataflog="msg" @funcshow="show" ></log>
</div> <template id="log">
<div>
<h1>这是子组件界面----{{dataflog}}</h1>
<input type="button" @click="myclick" value="父组件传递过来的方法 子组件接收">
</div>
</template> <script> var vm=new Vue({
el:'.app',
data:{
msg:'看到数据了嘛'
},
methods: {
// 父方法接受参数
show(a){
console.log(a.name+'父组件方法');
}, },
components:{
log:{
template:'#log',
props:['dataflog'],
data(){
return {
duwei:{name:'duwei',age:30}
}
},
methods: {
myclick(){
// console.log('ok');
// 当点击子组件按钮的时候,如何拿到父组件传递过来的func 方法,并调用呢?
// emit英文愿意:是触发调用 发射的意思。
// this.$emit('funcshow')
// emit传递父组件中的方法,并且子组件向父组件传递消息
// this.$emit('funcshow',123,345)
this.$emit('funcshow',this.duwei); }, },
}, }
})
</script>
</body>
</html>