vue实现父子组件之间的通信以及兄弟组件的通信功能示例

作者:s_psycho 时间:2024-05-21 10:15:43 

本文实例讲述了vue实现父子组件之间的通信以及兄弟组件的通信功能。分享给大家供大家参考,具体如下:


<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>www.jb51.net 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.jb51.net/code/HtmlJsRun测试上述代码,可得如下运行效果:

vue实现父子组件之间的通信以及兄弟组件的通信功能示例

希望本文所述对大家vue.js程序设计有所帮助。

来源:https://blog.csdn.net/weixin_42413689/article/details/81709528

标签:vue,父子组件,兄弟组件,通信
0
投稿

猜你喜欢

  • ASP.NET2.0数据库入门之SqlDataSource

    2024-01-24 08:38:12
  • 基于Python实现对比Exce的工具

    2022-12-04 17:44:44
  • Python利器openpyxl之操作excel表格

    2022-11-16 18:46:58
  • Python程序设计入门(2)变量类型简介

    2021-09-28 14:51:18
  • 举例讲解Python面向对象编程中类的继承

    2022-02-09 02:59:14
  • python requests抓取one推送文字和图片代码实例

    2023-10-26 23:11:16
  • Python urlopen 使用小示例

    2022-08-23 19:54:55
  • ASP.NET中使用SQL存储过程的方法

    2007-08-24 09:31:00
  • Python读取一个目录下所有目录和文件的方法

    2023-05-30 23:04:21
  • Tensor 和 NumPy 相互转换的实现

    2023-07-05 04:55:51
  • 网页设计标准尺寸

    2008-06-15 15:21:00
  • mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法

    2021-10-19 18:40:40
  • python实现翻转棋游戏(othello)

    2022-06-02 10:40:19
  • python3 实现mysql数据库连接池的示例代码

    2024-01-17 15:25:59
  • Django如何批量创建Model

    2022-12-29 15:40:39
  • Java正则表达式Pattern和Matcher原理详解

    2023-01-10 14:01:31
  • 如何设置mysql允许外网访问

    2024-05-03 15:49:38
  • JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)

    2024-04-17 09:52:06
  • 将python包发布到PyPI和制作whl文件方式

    2023-07-29 04:38:03
  • 使用VSCODE配置GO语言开发环境的完整步骤

    2024-04-27 15:27:51
  • asp之家 网络编程 m.aspxhome.com