vue 子的值传给父的值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>组件通信</title>
    <style>
        table {
            width: 500px;
            border: 1px solid;
            margin: 10px auto;
        }

        td {
            padding: 10px 0;
            text-align: center;
        }
    </style>
</head>
<body>
<div id="tab">
<table >
    <tbody>
        <tr style="background-color: #008000;color: white;">
            <td colspan="3">父组件</td>
        </tr>
        <tr>
            <td>name</td><td>{{name}}</td><td><input type="text" v-model="name"/></td>
        </tr>
        <tr>
            <td>age</td><td>{{age}}</td><td><input type="text" v-model="age"/></td>
        </tr>
    </tbody>
</table>
       <v-son  :sname="name"   @chan="fchange"  :sage="age"></v-son>
</div>


<template id="moban">
    <div>
        <button @click="chanfa">儿子</button>
        <table>
            <tbody>
            <tr style="background-color: #008000;color: white;">
                <td colspan="3">{{name}}</td>
            </tr>
            <tr>
                <td>name</td><td>{{name}}</td><td><input type="text" v-model="name"/></td>
            </tr>
            <tr>
                <td>age</td><td>{{age}}</td><td><input type="text" v-model="age"/></td>
            </tr>
            </tbody>
        </table >
        <v-sons></v-sons>
    </div>
</template>

<template id="moban2">
    <div>
        <table>
            <tbody>
            <tr style="background-color: #008000;color: white;">
                <td colspan="3">{{names}}</td>
            </tr>
            <tr>
                <td>name</td><td>{{names}}</td><td><input type="text"/></td>
            </tr>
            <tr>
                <td>age</td><td>{{ages}}</td><td><input type="text"/></td>
            </tr>
            </tbody>
        </table >
    </div>
</template>
</body>
<script src="https://cdn.bootcss.com/vue/2.4.4/vue.js"></script>
<script>
    new Vue({
       el:"#tab",
        data:{
           name:"父组件",
            age: "18"
        },
        methods:{
          fchange (val){
           this.name=val
          }
        },
        components: {
            "vSon":{
                props:['sname',"sage"],
                data(){
                    return{
                        name:this.sname,
                        age:this.sage
                    }
                },
                methods:{
                    chanfa(){
                        this.$emit("chan",this.name)
                    }
                },
                template:"#moban",
                components: {
                    "vSons":{
                        data(){
                            return{
                                names:"后代组件",
                                ages:"8"
                            }
                        },
                        template:"#moban2",
                    }
                }
            }
        }
    });
</script>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值