<!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>
vue 子的值传给父的值
最新推荐文章于 2024-08-28 00:15:00 发布