vue中子组件调用兄弟组件方法


Posted in Javascript onJuly 06, 2018

小计: 开发中遇到子组件需要调用兄弟组件中的方法,如下写个小demo记录下心得,如果你有好的方法,请到评论区域指教

父组件示例代码:

组件功能解析: 

通过$emit获取子组件事件,通过$ref调用子组件中事件,实现子组件二的click事件

调用兄弟组件一中的事件

<template>
 <div>
  <!-- 子组件1 -->
  <son1 ref="borther" :dataFromFather="dataFromFather"></son1>
  <!-- 子组件2 -->
  <son2 @triggerBrotherMethods="triggerBrotherMethods" :dataFromFather="dataFromFather"></son2>
 </div>
</template>

<script>
// 引入子组件一
import son1 from './son1'
// 引入子组件二
import son2 from './son2'

export default {
 data() {
  return {
   dataFromFather: []
  }
 },
 // 注册子组件
 components: {
  son1,
  son2
 },
 methods: {
  // 子组件2中click事件
  triggerBrotherMethods() {
   // 父组件通过$ref调用子组件1中的事件方法
   this.$refs.borther[0].bortherMethods()
  },
 }
}
</script>

<style lang="less" scoped>
/* .... */
</style>

子组件一

组件功能解析: 

加载父组件数据,进行业务操作

<template>
 <!-- 子组件son2 -->
 <div @click="bortherMethods">
  <!-- 父组件传值展示 -->
  {{dataFromFather}}
 </div>
</template>

<script>
export default {
 data() {
  return {
  }
 },
 props: ['dataFromFather'],
 methods: {
  // 兄弟组件中的按钮事件
  bortherMethods() {
   // 子组件事件方法
   ...
  },
 }
}
</script>

<style lang="less" scoped>
/* .... */
</style>

子组件二:

组件功能解析: 

加载父组件数据,通过click事件emit传给父组件

<template>
 <!-- 子组件son2 -->
 <div @click="triggerBrotherMethods">
  <!-- 父组件传值展示 -->
  {{dataFromFather}}
 </div>
</template>

<script>
export default {
 data() {
  return {
  }
 },
 props: ['dataFromFather'],
 methods: {
  // 触发兄弟组件中的按钮事件
  triggerBrotherMethods() {
   this.$emit('clickBrotherBtn', true)
  },
 }
}
</script>

<style lang="less" scoped>
/* .... */
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery中增加参数与Json转换代码
Nov 20 Javascript
javascript模块化是什么及其优缺点介绍
Sep 02 Javascript
JavaScript encodeURI 和encodeURIComponent
Dec 04 Javascript
一分钟理解js闭包
May 04 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
Nov 01 Javascript
基于jQuery的checkbox全选问题分析
Nov 18 Javascript
js用类封装pop弹窗组件
Oct 08 Javascript
Vue实现搜索 和新闻列表功能简单范例
Mar 16 Javascript
vue实例中data使用return包裹的方法
Aug 27 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
Oct 31 Javascript
JavaScript编码小技巧分享
Sep 17 Javascript
Vue组件更新数据v-model不生效的解决
Apr 02 Vue.js
vue中element 上传功能的实现思路
Jul 06 #Javascript
vue 组件中添加样式不生效的解决方法
Jul 06 #Javascript
vue实现动态添加数据滚动条自动滚动到底部的示例代码
Jul 06 #Javascript
微信小程序利用canvas 绘制幸运大转盘功能
Jul 06 #Javascript
用Node提供静态文件服务的方法
Jul 06 #Javascript
vue使用监听实现全选反选功能
Jul 06 #Javascript
vue 实现数字滚动增加效果的实例代码
Jul 06 #Javascript
You might like
smarty模板引擎中变量及变量修饰器用法实例
2015/01/22 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
2016/10/20 PHP
PHP多维数组排序array详解
2017/11/21 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
代码生成器 document.write()
2007/04/15 Javascript
javascript处理table表格的代码
2010/12/06 Javascript
JavaScript中对象property的读取和写入方法介绍
2014/12/30 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
javascript Function函数理解与实战
2017/12/01 Javascript
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
小程序云开发实现数据库异步操作同步化
2019/05/18 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
2019/08/16 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
Python利用Nagios增加微信报警通知的功能
2016/02/18 Python
python 遍历列表提取下标和值的实例
2018/12/25 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
2019/04/15 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
2020/02/29 Python
Python 去除字符串中指定字符串
2020/03/05 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
利用python 读写csv文件
2020/09/10 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
天网面试题
2013/04/07 面试题
升职自荐书范文
2013/11/28 职场文书
给老婆大人的检讨书
2014/02/24 职场文书
婚假请假条格式及范文
2014/04/10 职场文书
财务审计整改报告
2014/11/06 职场文书
2014年民政工作总结
2014/11/26 职场文书
中班下学期幼儿评语
2014/12/30 职场文书