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 27 Javascript
一个可绑定数据源的jQuery数据表格插件
Jul 17 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
Jul 22 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
Jul 20 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
Jan 26 Javascript
javascript基础语法学习笔记
Jan 04 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
Nov 30 Javascript
AngulerJS学习之按需动态加载文件
Feb 13 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
Apr 26 jQuery
Vue条件循环判断+计算属性+绑定样式v-bind的实例
Sep 18 Javascript
小程序自定义日历效果
Dec 29 Javascript
JavaScript惰性载入函数实例分析
Mar 27 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面向对象编程快速入门
2006/10/09 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
JavaScript 利用StringBuffer类提升+=拼接字符串效率
2009/11/24 Javascript
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
2016/05/12 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
2018/09/27 Javascript
JS学习笔记之闭包小案例分析
2019/05/29 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
Python过滤函数filter()使用自定义函数过滤序列实例
2014/08/26 Python
Python中Random和Math模块学习笔记
2015/05/18 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
Python查找最长不包含重复字符的子字符串算法示例
2019/02/13 Python
详解Python中的测试工具
2019/06/09 Python
python 实现按对象传值
2019/12/26 Python
Python2.x与3​​.x版本有哪些区别
2020/07/09 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
奥地利度假券的专家:we-are.travel
2019/04/10 全球购物
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
二手书店创业计划书
2014/01/16 职场文书
银行服务感言
2014/03/01 职场文书
元旦文艺汇演主持词
2014/03/26 职场文书
经济国贸专业求职信
2014/06/18 职场文书
贷款承诺书
2015/01/20 职场文书
Django程序的优化技巧
2021/04/29 Python
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript