Vue子组件和父组件的双向通信

1.子组件==>父组件

子组件:

<template>
   <div class="app">
  	  <input @click="sendToParent" type="button" value="给父组件传值">
   </div>
</template>
<script>
export default {
    data () {
        return {
            msg: "给父组件传的值msg",
        }
    },
     methods:{
         sendToParent(){
             //关键代码 		 
             //将msg的值绑定到父组件的getMessage方法上
             this.$emit('sendToParent',this.msg)
         }
     }
}
</script>

父组件:

    <template>
        <div class="app">
       	    //关键代码
            <child @getMessage="getMessage"></child>
        </div>
    </template>
    <script>
    import child from './child.vue'
    export default {
        data () {
            return {
                msgSon: "父组件默认的值"
            }
        },
        components:{
            child
        },
        methods:{
                getMessage(data){
               // 将值传给msgSon
                this.msgSon = data
                console.log(this.msgSon) //输出值为:"给父组件传的值msg"
                }
        }
    }
    </script>

2.父组件==>子组件

父组件

<template>
  <div class="app">
    //子组件是一个小弹窗
    //ref="Son"不能忘记加
    <Son @btnClick='btnClick' ref="Son"></Son>
  </div>
</template>

<script>
  import Son from './Son.vue'
  export default {
    components: {
      Son
    },
    data() {
        return {
    },
    methods: {
	   	btnClick() {
           //调用子组件AddEdit的showDialog方法
           this.$refs.Son.showDialog();
           //给子组件Son的value赋值
           this.$refs.Son.value="value是子组件的值";
	    };
     }
  }
}
</script>

子组件

<template>
 <div class="app">
  	//el-dialog是element-ui的组件
    <el-dialog  @btnClick="btnClick" :visible="dialogVisible" 
    </el-dialog>
   <input type="text" :value="value"/>
 </div>
</template>
export default {
    data() {
      return {
      	value:"哈哈哈"
    },
    methods: {
      //显示小弹窗
      showDialog() {
      //利用dialogVisible的值来控制这个小弹窗的显示或者隐藏
        this.dialogVisible = true
      },
    }
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值