一:父传子

父组件代码如下:

<template><div class="father"><child :message='message' :message2='message2'></child>
</div>
</template>
<script>
import child from '@/components/child.vue'
export default {components:{child},data(){return{message: '我是来自父组件的第一条message',message2:'我是来自父组件的第二条message'}}
}
</script>

子组件代码如下:

<template><div class="child">{{message}}<br/>{{message2}}</div>
</template>
<script>
export default {props:['message','message2']
}
</script>

运行结果如下图:

二:子传父

子组件代码如下:

<template><div class="child" ><button @click="sendMsgToParent">点击开始传值</button></div>
</template>
<script>
export default {data(){return{}},methods:{sendMsgToParent(){this.$emit('listenMsg','我是来自子组件的message')}}
}
</script>

父组件代码如下:

<template><div class="father">{{msg}}<child v-on:listenMsg="showMsg"></child>
</div>
</template>
<script>
import child from '@/components/child.vue'
export default {components:{child},data(){return{msg:'我是来自父组件的msg'}},methods:{showMsg(data){this.msg = data}}
}
</script>

运行结果如下:

点击按钮后,运行结果如下:

三:非父子

如果是非父子进行组件通信的话,我们首先要创建一个桥梁,通过这个桥梁使两个组件产生联系。

首先创建‘桥梁’-----bus.js,代码如下

import Vue from 'vue'
const bus = new Vue()
export default bus

然后组件A通过点击事件想将数据发送给组件B,代码如下

<template><div class="hello">{{number}}<br/><button @click="sendNumber()">发送</button></div>
</template>
<script>
import bus from '../assets/js/bus.js'
export default {data(){return{number:'我是hello组件参数123'}},methods:{sendNumber(){bus.$emit('acceptNumber',this.number)}}
}
</script>

组件B接受发送过来的数据,代码如下

<template><div class="world">{{number}}</div>
</template>
<script>
import bus from '../assets/js/bus.js'
export default {data(){return{number:'我是world组件参数456'}},created(){bus.$on('acceptNumber',data =>{this.number = data})}
}
</script>

代码运行后,演示结果如下图

当点击发送按钮后,演示结果如下图

至此,非父子组件通信完成。

转载于:https://www.cnblogs.com/YMoonwind/p/11164129.html

自我总结篇之vue的组件通信(父传子 子传父 非父子)相关推荐

  1. (25)Vue.js组件通信—父组件向子组件传值

    一.Vue.js组件通信介绍 子组件如何获取父组件中的数据?父组件如何得知子组件的数据变更?如果是更加复杂的组件关系呢?在组件间传递数据的操作,称为组件通信. 二.Vue.js组件通信内容 • 父组件 ...

  2. vue从入门到精通之进阶篇(二)组件通信:兄弟组件通信

    $emit和$on进行组件之间的传值 注意:emit和emit和emit和on的事件必须在一个公共的实例上,才能够触发 需求: ​ 1.有A,B,C三个组件,同时挂载到入口组件中 ​ 2.将A组件中的 ...

  3. VUE.js组件通信精髓归纳(基础篇)

    前言 文章涉及的内容可能不全面,但量很多,需要慢慢看.我花了很长的时间整理,用心分享心得,希望对大家有所帮助.但是难免会有打字的错误或理解的错误点,希望发现的可以邮箱告诉我1163675970@qq. ...

  4. Vue入门 ---- 组件通信

    ##组件通信: 子组件获取父组件的数据 父组件获取子组件的数据 平行组件之间的通信 vue2.0中用子组件修改父组件数据报错问题 一定需要通过子组件修改父组件 子组件获取父组件的数据 通过子组件中的属 ...

  5. vue的组件通信,父子/子孙组件传参和方法调用

    随着代码量的提示,肯定是要把弹框.上传等一些公用的表单封装成组件的 1-1.父传子 :seldata="SiteList"为父传子,seldata子组件接收的值,SiteList为 ...

  6. Vue组件通信09-多层级组件通信(爷爷到孙子-传方法)-$listener

    components/Parent.vue <template><div>我是父组件<br>这里显示父级的msg:{{msg}}<Son :msg=" ...

  7. (26)Vue.js组件通信—props 命名规则

    建议 prop 命名使用 camelCase(驼峰命名法),父组件绑定时使用 kebab-case(多个单词使用连字符连接书写).

  8. vue 祖孙组件通信, 祖组件获取孙组件数据

    祖组件: <select-item selectFiled="tyreTreadWidth" :width="70" v-on:selected=&quo ...

  9. springboot与php通讯,Springboot第二篇:与前端fetch通信(关于传输数据上传文件等前后端的处理)...

    本章讲述的是关于前后端通信关于对应性,前端为react的View,会分传递不同值有不同的处理情况. 首先关于Springboot内的代码变更都是在IndexController.java内,以下是代码 ...

最新文章

  1. Websphere设备、企业部署应用程序 【应用】
  2. 《Redis设计与实现》之第七章:压缩列表
  3. python --- 基础多线程编程
  4. 最大和 -- 最大子矩阵
  5. 控制附件的大小 php,wordpress如何修改默认上传附件限制大小
  6. windows安装python2.7_Windows下安装python2.7及科学计算套装
  7. JAVA实现Token学习笔记001--Token入门案例
  8. linux之git入门命令
  9. 20-21-2网络管理quiz3
  10. 简单python脚本实例-python脚本例子
  11. python log模块
  12. bootcamp空间不足_Bootcamp安装WindowsXP补丁时C盘空间不足的解决措施
  13. 每年都要调两次时间,美国人已经烦透了
  14. 命令行下载网页视频方法
  15. 2.OSGI企业应用开发-Eclipse中搭建Felix运行环境
  16. CAD修改文字(网页版)
  17. 嵌入式新闻早班车-第5期
  18. 九招教你完全了解液晶拼接屏
  19. RS485自行收发的实现方法
  20. 重量(计量单位)英文缩写和转换表

热门文章

  1. Python速忆笔记(更新中)
  2. 【51单片机快速入门指南】3:中断系统
  3. C++ 标准函数库 —— 文件的输入输出 (Input/Output with files)
  4. mac下使用sshpass实现ssh记住密码
  5. C++的JSON库及使用方法
  6. Oracle SQL Loader数据导入
  7. VMware安装系统时没有弹出分区设置
  8. React开发(275):dva debugger对应的值
  9. 重学java基础第十五课:java三大版本
  10. 前端学习(3113):react-hello-类式组件