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 函数链之演变
Apr 07 Javascript
浅谈JavaScript 框架分类
Nov 10 Javascript
实例分析js和C#中使用正则表达式匹配a标签
Nov 26 Javascript
JavaScript基于ajax编辑信息用法实例
Jul 15 Javascript
vue.js指令v-model实现方法
Dec 05 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
May 24 Javascript
jquery版轮播图效果和extend扩展
Jul 18 jQuery
JavaScript实现的数字与字符串转换功能示例
Aug 23 Javascript
JS中关于正则的巧妙操作
Aug 31 Javascript
深入了解query和params的使用区别
Jun 24 Javascript
微信小程序基础教程之worker线程的使用方法
Jul 15 Javascript
layui table 表格模板按钮的实例代码
Sep 21 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
域名和cookie问题(域名后缀)
2012/10/10 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
2013/04/26 PHP
php获取远程文件大小
2015/10/20 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2016/04/12 PHP
javascript中的几个运算符
2007/06/29 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
2013/04/17 Javascript
用nodejs写的一个简单项目打包工具
2013/05/11 NodeJs
jQuery实现动画效果的简单实例
2014/01/27 Javascript
js实现图片漂浮效果的方法
2015/03/02 Javascript
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
2016/02/18 Javascript
jquery div模态窗口的简单实例
2016/05/28 Javascript
AngularJS动态生成div的ID源码解析
2016/08/29 Javascript
javascript添加前置0(补零)的几种方法
2017/01/05 Javascript
什么是Vue.js框架 为什么选择它?
2017/10/17 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
js实现窗口全屏示例详解
2019/09/17 Javascript
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
python实现监控linux性能及进程消耗性能的方法
2014/07/25 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
python db类用法说明
2020/07/07 Python
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
学校司机岗位职责
2013/11/14 职场文书
酒店人事专员岗位职责
2013/12/19 职场文书
英语感恩演讲稿
2014/01/14 职场文书
经济管理毕业生求职信
2014/03/15 职场文书
清明节网上祭英烈活动总结
2014/04/30 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
股东协议书范本2016
2016/03/21 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js
Django中session进行权限管理的使用
2021/07/09 Python
详解MySQL的内连接和外连接
2023/05/08 MySQL