这篇文章主要为大家详细介绍了vue实现父子组件之间的通信以及兄弟组件的通信功能示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
本文实例讲述了vue实现父子组件之间的通信以及兄弟组件的通信功能。分享给大家供大家参考,具体如下:
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>www.q1010.com vue父子组件通信、兄弟组件通信</title>
<style>
*{
margin: 0;
padding: 0;
list-style: none;
}
table{
text-align: center;
margin:0 auto;
}
div{
text-align: center;
}
</style>
</head>
<body>
<div id="app">
<table border="1" cellpadding="0" cellspacing="0">
<tr><td colspan="3">父组件数据</td></tr>
<tr><td>name</td><td>{{name}}{{ff()}}</td><td><input type="text" v-model="name"></td></tr>
<tr><td>age</td><td>{{age}}{{ff()}}</td><td><input type="text" v-model="age"></td></tr>
</table>
<v-son :son-name="name" :son-age="age" @sza="gg"></v-son>
</div>
<template id="son">
<div>
<button @click="sonChange">子组件按钮</button>
<table border="1" cellpadding="0" cellspacing="0">
<tr><td colspan="3">子组件数据</td></tr>
<tr><td>name</td><td>{{sonName}}</td><td><input type="text" v-model="sonName"></td></tr>
<tr><td>age</td><td>{{sonAge}}</td><td><input type="text" v-model="sonAge"></td></tr>
</table>
<g-son :g-name="sonName" :g-age="sonAge"></g-son>
</div>
</template>
<template id="vgson">
<div>
<button @click="gchan">孙子组件按钮</button>
<table border="1" cellpadding="0" cellspacing="0">
<tr><td colspan="3">孙子组件数据</td></tr>
<tr><td>name</td><td>{{gName}}</td><td><input type="text" v-model="gName"></td></tr>
<tr><td>age</td><td>{{gAge}}</td><td><input type="text" v-model="gAge"></td></tr>
</table>
</div>
</template>
</body>
<script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js"></script>
<script>
var bus=new Vue();
const app=new Vue({
el:"#app",
data:{
name:"keep",
age:"28"
},
methods:{
gg(val1,val2){
this.name=val1
this.age=val2
},
ff(){
bus.$on("suibian", (val1,val2)=> {
this.name=val1;
this.age=val2
})
}
},
components:{
"vSon":{
template:"#son",
methods:{
sonChange(){
this.$emit("sza",this.sonName,this.sonAge)
}
},
props:["sonName","sonAge"],
components:{
"gSon":{
template:"#vgson",
props:["gName","gAge"],
methods:{
gchan(){
bus.$emit("suibian",this.gName,this.gAge);
},
}
}
},
}
}
})
</script>
</html>
这里使用在线HTML/CSS/JavaScript代码运行工具:http://tools.q1010.com/code/HtmlJsRun测试上述代码,可得如下运行效果:
【图片暂缺】
希望本文所述对大家vue.js程序设计有所帮助。
本文来自:http://www.q1010.com/184/6987-0.html
注:关于vue实现父子组件之间的通信以及兄弟组件的通信功能示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:vue.js
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。