文章目录

  • 一、前言
  • 二、代码实现
  • 三、拓展阅读

一、前言

在开发Vue项目过程中,代码复用之自定义组件是常做事情。当子组件为form表单的时候,父组件需要获取子组件(表单)的验证结果。

尽管有 prop 和事件,但是有时仍然需要在 JavaScript 中直接访问子组件。为此可以使用 ref 为子组件指定一个引用 ID。ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例。通过这种方式,便可以在父组件中调用子组件方法!

二、代码实现

子组件

<template><div><el-form :model="aForm" :rules="aRules" ref="aForm"><el-form-item label="名称" prop="name"><el-input v-model="aForm.name"></el-input></el-form-item><el-form-item label="年龄" prop="age"><el-input v-model="aForm.age"></el-input></el-form-item></el-form></div>
</template><script>export default {name: 'A',data() {return {aForm: {name: '',age: ''},aRules: {name: [{ required: true, message: '请输入名称', trigger: 'blur' },{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }],age: [{ required: true, message: '请输入年龄', trigger: 'blur' }],}}},methods: {validateForm() {let flag = falsethis.$refs['aForm'].validate((valid) => {flag = valid})return flag}}}
</script>

父组件

<template><div><A ref="a"></A><el-button @click="save">保存</el-button></div>
</template><script>import A from './a.vue'export default {name: 'child-component-validate',data() {return {}},methods: {save() {console.log(this.$refs['a'].validateForm())}},components: {A}}
</script>

v-for 用于元素或组件的时候,引用信息将是包含 DOM 节点或组件实例的数组。

关于 ref 注册时间的重要说明:因为 ref 本身是作为渲染结果被创建的,在初始渲染的时候你不能访问它们 - 因为它们还不存在!$refs 也不是响应式的,因此你不应该试图用它在模板中做数据绑定。

三、拓展阅读

  • 《Vue进阶(幺幺玖):element-ui table组件适应性问题(横向滚动条)》

Vue进阶(幺贰零):父组件获取子组件验证结果相关推荐

  1. jquery查找父窗体id_Vue父组件获取子组件中的变量

    全世界只有不到3 % 的人关注了我 你真是个特别的人 在vue项目日常开发中,难免要把功能性组件抽离出来,这样结构就会出现父子组件,兄弟组件等,但是这样就会涉及到不同组件需要互相使用其中的某个值的问题 ...

  2. 微信小程序——1、自定义顶部渐变色2、封装好的自定义顶部栏(父组件获取子组件的点击事件)

    1.自定义顶部渐变色 第一种使用代码实现渐变 效果图: .json代码 "navigationStyle":"custom" .wxml代码 <view ...

  3. vue/uniapp父组件获取子组件内的数据或方法

    1.父组件主动获取子组件中的数据和方法 在父组件里面通过: ``` this.$refs.childMethod.属性 this.$refs.childMethod.方法 ``` 在父组件中:(调用子 ...

  4. angular使用@viewChild父组件获取子组件的数据和方法

    一. 父组件通过局部变量获取子组件的引 用  ,主动获取子组件的数据和方法 1. 使用#给子组件命名为#footer <app-footer #footer></app-footer ...

  5. 子组件向父组件传值,父组件获取子组件值

    子组件如何传值给父组件? 父组件将一个方法赋值给一个属性props传递给子组件,子组件在函数被应用时调用父组件传来的属性并传值,父组件可在自身的函数中接受子组件传递过来的值. 父组件 //father ...

  6. rn 函数式组件获取子组件的实例

    class式组件要获取子组件的实例只要用ref就可以了,但是函数式组件就要复杂一点 函数式组件要给子组件直接绑定ref是不成功的,要求子组件使用forward创建才可以,如下 const ChildR ...

  7. Vue进阶(贰零柒):Webpack 性能优化措施汇总

    文章目录 一.前言 二.优化方案 2.1 优化 Loader 2.2 DllPlugin 2.3 代码压缩 2.4 一些小的优化点 2.5 减少 Webpack 打包后的文件体积 2.5.1 按需加载 ...

  8. Vue进阶(贰零叁):iframe嵌套页面IE不展示问题解决

    文章目录 一.前言 二.问题分析 三.解决方法 四.拓展阅读 一.前言 在前期博文<Vue进阶(六十四):iframe更改src后页面未刷新问题解决>中讲解了iframe更改src后页面未 ...

  9. antd如何获取表单的值_antd 父组件获取子组件中form表单的值

    还是拿代码来讲吧,详情见注释 子组件 import React, { Component } from 'react'; import { Form, Input } from 'antd'; con ...

最新文章

  1. webrtc 泄漏真实 ip 地址
  2. Linux命令netstat解读
  3. 【grafana】API 遇到的问题
  4. Android应用程序之间共享文字和图片(一)
  5. 三通道的黑白图(不同于单通道的普通的黑白图片)
  6. Json.Net Demo2
  7. js字符串编码和unicode编码互转
  8. 直流稳压电源设计(单相)_电力电子课程设计
  9. VMware Workstation12安装win 7企业版激活
  10. ThunderSoft Video to GIF Converter(电脑视频转gif软件)官方正式版V3.3.0 | 轻松将视频转换成GIF图片
  11. 中间件技术及双十一实践·EagleEye篇
  12. Kubernetes 污点与容忍
  13. 关于PEM, DER, CRT, CER,KEY等各类证书与密钥文件后缀的解释
  14. 风格的要素 C语言 pdf,英语写作手册:风格的要素(新译本) [Elements of Style]
  15. 程序员吐槽:四年被三家公司裁员补偿,网友:去BAT转转?
  16. 归并排序---天下大事,合久必分,分久必合
  17. 今夜月色必然明朗 水浒
  18. 电压采样,输出有效值
  19. C语言在屏幕上输出玫瑰花图片
  20. 1t硬盘怎么分区最好_1t硬盘怎么分区合理相关阅读-1t硬盘怎么分区合理文章阅读-123文学网...

热门文章

  1. 阿里云 数加 · DataWorks 数据同步
  2. n个整数,找出连续的m个数加和是最大
  3. 很多做淘宝客的朋友会用到采集,那么怎么提取出淘宝商品id呢
  4. C语言练习系统 打印三角形
  5. 【转】校招优秀简历和普通简历的区别
  6. Python_内置函数之round的幺蛾子
  7. 电脑垃圾,怎么清理电脑垃圾 让电脑全面瘦身
  8. dwz导出excel java_dwz怎么导出excel
  9. 全球通史读书笔记上(第七章——战争的起源)
  10. e-a乘a的转置的秩_通用矩阵乘(GEMM)优化与卷积计算