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 相关文章推荐
js触发asp.net的Button的Onclick事件应用
Feb 02 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
Nov 28 Javascript
javascript操作字符串的原生方法
Dec 22 Javascript
js+css实现导航效果实例
Feb 10 Javascript
JavaScript电子时钟倒计时
Jan 09 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
Sep 18 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
Mar 01 Javascript
JavaScript面试出现频繁的一些易错点整理
Mar 29 Javascript
浅谈Webpack 是如何加载模块的
May 24 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
Oct 02 Javascript
vue移动端使用canvas签名的实现
Jan 15 Javascript
通过vue刷新左侧菜单栏操作
Aug 06 Javascript
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
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
PHP 获取文件路径(灵活应用__FILE__)
2013/02/15 PHP
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
ThinkPHP调试模式与日志记录概述
2014/08/22 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
jQuery EasyUI API 中文文档 - Panel面板
2011/09/30 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
JavaScript中实现依赖注入的思路分享
2015/01/15 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
2016/06/03 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
jQuery快速高效制作网页交互特效
2017/02/24 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
vue中v-for通过动态绑定class实现触发效果
2018/12/06 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
Python使用cx_Oracle模块操作Oracle数据库详解
2018/05/07 Python
python 中字典嵌套列表的方法
2018/07/03 Python
python+pyqt5实现图片批量缩放工具
2019/03/18 Python
用Python去除图像的黑色或白色背景实例
2019/12/12 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
2020/02/11 Python
一款利用纯css3实现的360度翻转按钮的实例教程
2014/11/05 HTML / CSS
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
美国五金商店:Ace Hardware
2018/03/27 全球购物
正宗的澳大利亚Ugg靴子零售商:UGG Express
2020/04/19 全球购物
公司口号大全
2014/06/11 职场文书
拾金不昧锦旗标语
2014/06/27 职场文书
公司股东合作协议书
2014/09/14 职场文书
信用卡工资证明范本
2014/10/17 职场文书
2014年村党支部工作总结
2014/12/04 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书
小学校园广播稿
2015/08/18 职场文书
python 破解加密zip文件的密码
2021/04/22 Python