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 相关文章推荐
小议Javascript中的this指针
Mar 18 Javascript
基于JQuery的简单实现折叠菜单代码
Sep 15 Javascript
js中复制行和删除行的操作实例
Jun 25 Javascript
基于jQuery的图片不完全按比例自动缩小
Jul 11 Javascript
JavaScript时间操作之年月日星期级联操作
Jan 15 Javascript
创建一个类Person的简单实例
May 17 Javascript
Bootstrap自定义文件上传下载样式
May 26 Javascript
JavaScript函数中关于valueOf和toString的理解
Jun 14 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
Mar 15 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
Apr 12 Javascript
Vue resource三种请求格式和万能测试地址
Sep 26 Javascript
CountUp.js数字滚动插件使用方法详解
Oct 17 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
php一些公用函数的集合
2008/03/27 PHP
PHP+Mysql+jQuery实现动态展示信息
2011/10/08 PHP
php 注释规范
2012/03/29 PHP
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
jquery 实现密码框的显示与隐藏示例代码
2013/09/18 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
angular2 ng build部署后base文件路径问题详细解答
2017/07/15 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
Vuex入门到上手教程
2018/06/20 Javascript
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
js实现超级玛丽小游戏
2020/03/18 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
在Python中进行自动化单元测试的教程
2015/04/15 Python
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
一个Python最简单的接口自动化框架
2018/01/02 Python
python 删除非空文件夹的实例
2018/04/26 Python
Python学习笔记之视频人脸检测识别实例教程
2019/03/06 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
django迁移文件migrations的实现
2020/03/31 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
详解Python流程控制语句
2020/10/28 Python
Python爬虫入门教程01之爬取豆瓣Top电影
2021/01/24 Python
内部类的定义、种类以及优点
2013/10/16 面试题
安全月活动总结
2014/05/05 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
2016大一新生军训心得体会
2016/01/11 职场文书
《社戏》教学反思
2016/02/22 职场文书
社区结对共建协议书
2016/03/23 职场文书
python opencv旋转图片的使用方法
2021/06/04 Python
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers
create-react-app开发常用配置教程
2022/06/25 Javascript