vue子组件向父组件中传值

初次使用vue感觉还是有点凌乱…

<body>
    <div id='box'>
        <div :style='{fontSize:fontsize +"px"}'>我是父组件的内容</div>
        <div :style='{fontSize:fontsize +"px"}'>将调用handle方法放大字体</div>
        <!-- 这里的内联style样式在绑定后采用驼峰命名法,否则没有样式,记得加单位 -->
        <child-com :cattr='fruit' @font-size='handle($event)'></child-com>
        <!-- 通过$event接收传过来的值 -->
        <!-- 这时@font-size接收子组件中的@click方法 -->
    </div>
    <script src="./js/vue.js"></script>
    <script>
        Vue.component('child-com', {
            data: function() {
                return {

                }
            },
            props: ['cattr'],
            template: `
            <div>
                <!--<button @click='$emit("font-size")'>放大字体</button>-->
                <!--一个传参数、一个不传参数会出错,未传参数的显示未定义-->
                <button @click='$emit("font-size",5)'>放大5px字体</button>
                <button @click='$emit("font-size",10)'>放大10px字体</button>
                <!--这里可以传值$emit("font-size",5)-->
            </div>
            `
                // 子组件中用$emit方法绑定一个事件
                //<div></div>
                //<button @click='$emit("font-size")'>放大字体</button>
                //以上模板是错误的,会报错
                //!!!注意只能包含一个同级元素,包在一个容器中

        });
        new Vue({
            el: '#box',
            data: {
                fontsize: 10
            },
            methods: {
                //handle对应子组件中的点击事件
                handle: function(val) {
                    //val是$event传过来的参数
                    //对应data中的fontsize
                    this.fontsize += parseInt(val);
                }
            },
        })
    </script>
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值