Vue组件通信中的$emit 子传父数据

子传父

子组件里 通过$emit('自定义事件名',变量1,变量2)触发 事件

父组件@自定义事件名='事件名'监听事件

触发事件后, 通过$emit来触发 父组件 绑定在子组件标签上的 自定义事件

参数1: 要触发的事件

参数2: 要传递的值

子组件方法里 this.$emit('sendfather',val1,val2)触发自定义事件

父组件里<child @wyf="getMsgFromSon"></child>


1.先在子组件中有一个数据

let one  ={
            template:`#one`,
            data(){
                return {
                    mes:'数据发送父组件',
                }
            }
        }

2.在子组件的视图层写上一个按钮,并添加一个点击方法:

<template id="one">
        <div>
            <h1>我是子组件one</h1>
            <button @click="add()">发送数据给父组件</button>
        </div>
    </template>
 methods:{
                add(){
                    // 这里前面的名字是自定义的,代表发送数据
                    // 后面的是要发送的数据
                    this.$emit('getmes',this.mes)
                //只要这个事件触发了,数据就被发送出去了
                }
            }

3.在父组件中写上一个方法,并在根组件的视图层上使用子组件的地方绑定这个方法:

data:{
                message:''
            }, 
methods:{
                // 此时这个data就是发送过来的子组件的数据
                setmes(data){
                    //把数据赋值自己数据中心的message
                    this.message = data;
                    console.log(this.message);  
                }
<!-- 绑定这个自定义的名字为父组件的方法 -->
        <one @getmes="setmes"></one>

在根组件渲染这个数据,当点击按钮时:

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值