总结目录

  • 方法总结
  • 子组件获取父组件变量(也可用父组件调用子组件中的方法传值)
  • 父组件获取子组件变量(介绍两种方法)
  • 父组件调用子组件中的方法
  • 子组件调用父组件中方法(介绍两种方法)

方法总结

vue父子组件数据/方法传递调用
变量传递: 父组件变量传送到子组件、子组件变量传送到父组件
方法调用: 父组件调用子组件中方法、子组件调用父组件中方法

子组件获取父组件变量(也可用父组件调用子组件中的方法传值)

方法关键字:props
步骤(2步):

  1. 在父组件引用子组件标签中定义接受变量名并传值 。
    公式::子组件接受变量名=“父组件要传的变量名”
    如 :nowPriceF="nowPrice"
  2. 在子组件data()方法平级定义props对象接收变量。
    公式:props: { }
    如:props: {nowPriceF: Number}

完整例子:

// 父组件
<Add v-if="orgDialogVisible" ref="addChild" :nowPriceF='Number(nowPrice)'></Add>
// 子组件
export default {props: {nowPriceF: Number},data() {}
}

父组件获取子组件变量(介绍两种方法)

1. 方法一

方法关键字:ref 、$refs
步骤(2步):

  1. 在父组件引用子组件标签中定义ref,利用ref获取子组件变量。
    公式:ref=“对子组件定义唯一ref值”
    如 :ref="addChild"

  2. 在父组件中直接获取子组件中的变量。
    公式:this.$refs.addChild.子组件中变量名

    如:this.$refs.addChild.addForm
    完整例子:

//父组件
<Add v-if="orgDialogVisible" ref="addChild" :nowPriceF='Number(nowPrice)'></Add>
//在所用的方法获取,addForm:子组件中变量名
this.$refs.addChild.addForm

2. 方法二(也是子组件调用父组件的方法)

方法关键字:$emit
步骤(2步):

  1. 在子组件中通过 e m i t 调 用 父 组 件 中 定 义 的 方 法 , 将 变 量 以 参 数 带 过 去 。 公 式 : ∗ ∗ ‘ ‘ ‘ ‘ t h i s . emit调用父组件中定义的方法,将变量以参数带过去。 公式:**````this. emit调用父组件中定义的方法,将变量以参数带过去。公式:∗∗‘‘‘‘this.emit(‘传递到父组件的方法名’,需要传递的变量)”````**
    如 :this.$emit(‘lookPhotos’,file.url)

  2. 在父组件引用子组件标签中获取子组件定义的方法并获得参数。
    公式:@子组件定义传递到父组件的方法名="父组件获取参数变量的方法($event)"

    如:@lookPhotos="lookPhotosUrl($event)"
    完整例子:

//子组件
handlePictureCardPreview(file) {this.$emit('lookPhotos',file.url)//lookPhotos 定义传递到父元素的方法名//file.url 父元素要获取的东西
},
//父组件
<Add v-if="orgDialogVisible" ref="addChild" @lookPhotos="lookPhotosUrl($event)" :nowPriceF='Number(nowPrice)'></Add>//在methods: {}中获取
lookPhotosUrl(url){console.log('父元素需要的东西',url)
},

父组件调用子组件中的方法

方法关键字:ref、$refs
步骤(3步):

  1. 在父组件引用子组件标签中定义ref,利用ref获取子组件变量。
    公式:ref=“对子组件定义唯一ref值”
    如 :ref="addChild"
  2. 在父组件中直接调用子组件中的方法,可传参数。子组件获取父组件变量也可以用这个方法
    公式:this. r e f s . a d d C h i l d . 子 组 件 中 方 法 名 ∗ ∗ 如 : ∗ ∗ t h a t . refs.addChild.子组件中方法名** 如:**that. refs.addChild.子组件中方法名∗∗如:∗∗that.refs.addChild.calculateWithdrawal(row)
  3. 在子组件中执行调用的方法,可获取参数。
    公式:定义普通方法一样
    如:calculateWithdrawal(row){ }

完整例子:

//父组件,标签中定义ref就不贴代码了 都懂得
this.$refs.addChild.calculateWithdrawal(row)
//calculateWithdrawal 子组件中定义好的方法
calculateWithdrawal(row){console.log('父组件中调用了这个方法并传递了参数',row)
}

子组件调用父组件中方法(介绍两种方法)

1. 方法一 【常用】(也就是父组件获取子组件变量的方法2)

方法关键字:$emit
步骤(2步):

  1. 在子组件中通过$emit调用父组件中定义的方法,参数可有可没有。
    公式:this.$emit('传递到父组件的方法名',需要传递的变量)”
    如 :this.$emit(‘lookPhotos’,file.url)

  2. 在父组件引用子组件标签中获取子组件定义的方法并获得参数。
    公式:@子组件定义传递到父组件的方法名="父组件获取参数变量的方法($event)"

    如:@lookPhotos="lookPhotosUrl($event)"
    完整例子:

//子组件
handlePictureCardPreview(file) {this.$emit('lookPhotos',file.url)//lookPhotos 定义传递到父元素的方法名
},
//父组件
<Add v-if="orgDialogVisible" ref="addChild" @lookPhotos="lookPhotosUrl($event)" :nowPriceF='Number(nowPrice)'></Add>
lookPhotosUrl(url){console.log('我是被子组件召唤的方法',url)
},

2. 方法二

方法关键字:$parent
步骤(1步):

  1. 在子组件中通过 $parent调用父组件中的方法。
    公式:this.$parent.父组件方法名
    如 :this.$parent.oFF_orgDialog()

注意:可能会报错误 TypeError: this.$parent.xxx is not a function
解决方法:这里 ,不过尽量使用方法一

完整例子:

//子组件
this.$parent.oFF_orgDialog()
//oFF_orgDialog( )  父组件中方法

vue组件,父传子、子传父、父调子、子调父简单理解总结相关推荐

  1. 自定义vue组件--实现多图片上传

    一 引入 文件上传在日常的开发中是一项基本的操作,在前端中得以广泛的使用,因此将其封装成一个组件显得极为重要,本文主要是基于vue实现的自定义多图片上传组件. 二 自定义vue上传组件 MultiUp ...

  2. 封装Vue组件的原则及技巧

    封装Vue组件的原则及技巧 Vue的组件系统 Vue组件的API主要包含三部分:prop.event.slot props表示组件接收的参数,最好用对象的写法,这样可以针对每个属性设置类型.默认值或自 ...

  3. Vue组件之间传值的几种方法 (直接上代码)

    vue组件之间传值的几种方法总结 一. props(父传子) 父组件 传递 <template><div><HelloWorld :msg="msg" ...

  4. Vue组件绑定自定义事件

    Vue组件使用v-on绑定自定义事件: 可以分为3步理解: 1.在组件模板中按照正常事件机制绑定事件: template: '<button v-on:click="increment ...

  5. 面试-vue组件间通信

    说一说vue组件间的通信? 1.props,$emit,sync props父组件绑定传值,子组件声明props接收 props接收值原则上不允许改变,但对于对象属性改变,可能不会被vue检测到 $e ...

  6. 【Vue 组件化开发 三】父组件给子组件传递数据、组件通信(父传子、子传父)、父访问子(children、ref)、动态组件(is、component)

    目录 一.前言 完整内容请关注: 二.父组件给子组件传递数据 1.使用props属性,父组件向子组件传递数据 1.使用组件的props属性 2.向cmessage对象传值 2. props属性使用 1 ...

  7. vue组件通讯:父传子、子传父、事件发射详解

    1.组件通讯 每个组件有自己的数据, 提供在data中:每个组件数据独立, 组件数据无法互相直接访问 (合理的) 但是如果需要跨组件访问数据,  怎么办呢?  =>   组件通信组件通信的方式有 ...

  8. Vue组件之间的通信-父传子-子传父

    文章目录 Vue的组件嵌套 Vue组件间通信 1.父组件传递给子组件 1.1数组的方式 1.2对象的方式 2.子组件传递给父组件 Vue的组件嵌套 前面我们是将所有的逻辑放到一个App.vue中: 在 ...

  9. Vue组件通信(父传子、子传父、兄弟通信)

    一.父组件传到子组件 父组件是通过props属性给子组件通信的 数据是单向流动 父->子 (子组件中修改props数据,是无效的,会有一个红色警告) 1 . 父组件parent.vue代码如下: ...

最新文章

  1. 复习计算机网络day1-计算机网络的初步了解
  2. mybatis.xml
  3. android 判断是否是标点符号_Java 中文字符判断 中文标点符号判断
  4. Java笔记-AnnotationConfigApplicationContext在Spring中的例子
  5. 谈论源码_为什么每个人都在谈论WebAssembly
  6. mysql hash切分_轻松优化MySQL-之数据库切分1
  7. 20140213-面向对象技术概论
  8. Quartus17运行仿真RTL Simulation
  9. js实现快速排序(in-place)简述
  10. 【工具】ColorPix!分享一个超好用的桌面取色工具
  11. FMS视频在线采集系统
  12. Pentaho安装与配置
  13. EA(enterprise architect)左侧工作空间隐藏,如何打开
  14. jpi多表联查_MyBatis多表间级联查询
  15. 计算机成绩排名公式,职称计算机考试:Excel的数据分析—排位与百分比
  16. vue 有关于命名大小写的问题
  17. Asciidoctor基础语法
  18. python实现简单的声音文件读写
  19. YGG SEA 在越南成功启动
  20. 中级考试计算机界面是如何,中级会计如何无纸化考试

热门文章

  1. 一键铺货API(淘宝)
  2. 【工具-DVWA】DVWA的安装和使用
  3. 解决联想拯救者打开AMD Radeon Software弹出“The version of AMD Radeon Software ......”框问题
  4. prometheus监控+告警
  5. 今日小程序推荐:动态壁纸-你专属壁纸!
  6. 微信吸粉秘籍之人气论坛吸粉方法
  7. 响应状态码1xx , 2xx,3xx , 4xx , 5xx
  8. 死区时间的分析与设置
  9. 京东数据分析软件 | 如何获取京东平台的“增长榜单”
  10. 迁移学习和微调深度卷积神经网络