vue父组件与子组件通信demo

看完组件自定义事件之后自己写的一个小测试。
https://jsfiddle.net/zhoou/6x...

<div id="zj">
    <v-parent></v-parent>
</div>

<template id="parent">
    <div>
        表单内容:{{test}}<br>
        计数:{{n}}<br>
        <input type="text" v-model='test'>
        <v-child  :message='test' v-on:kkk='parentFun'></v-child>    
    </div>
</template>

<template id="child">
    <button v-on:click="childFun">{{num}}</button>
</template>
var zj=new Vue({
    el:'#zj',
    components:{
        'v-parent':{//局部注册父组件
            template:'#parent',
            data:function(){
                return {
                    test:'初始值',//test的值由父组件模板中的input动态双向绑定
                    n:0//测试子组件传递的数据,如果变化则传递成功
                };
            },
            methods:{
                parentFun:function(a){//测试子组件通过$emit传递过来的参数
                    this.n=a;
                }
            },
            components:{
                'v-child':{//局部注册子组件
                    props:['message'],//定义一个变量接收父组件传递过来的数据,指向父组件的test值,并且会跟随input中输入的内容实时变化
                    template:'#child',
                    data:function(){
                        return {num:0};//测试子组件单机事件
                    },
                    methods:{
                        childFun:function(){
                            //子组件方法,每单机一次数值加1,通过参数'kkk'把子组件处理之后的数据'num'传递出去,由父组件的方法接收并显示
                            this.num++;
                            this.$emit('kkk',this.num);
                        }    
                    }
                }
            }
        }
    }
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值