<!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" @fchan="change" :sage="age"></v-son>
</div>
<template id="moban">
<div>
<button>兒子</button>
<table>
<tbody>
<tr style="background-color: #008000;color: white;">
<td colspan="3">子組件</td>
</tr>
<tr>
<td>name</td>
<td>{{sname}}</td>
<td><input type="text" v-model="sonname"/></td>
</tr>
<tr>
<td>age</td>
<td>{{sage}}</td>
<td><input type="text" v-model="sonage"/></td>
</tr>
</tbody>
</table>
</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: {
change(val){
this.name=val
}
},
components: {
"vSon": {
props: ['sname', "sage"],
data(){
return {
sonname: this.sname,
sonage: this.sage
}
},
template: "#moban",
watch: {
sname(){
// console.log("父元素改變了");
this.sonname=this.sname;
},
sonname(){
// this.sname=this.sonname
this.$emit("fchan",this.sonname)
}
}
}
}
});
</script>
</html>
VUE 兄弟之間的傳值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.