vue ref是在组件里唯一吗_父组件伸手子组件的方式总结

1. 前言

这篇文章就是总结react,vue父组件如何伸手获取子组件的数据以及调用子组件方法的。

2. react

以下的代码都是基于16.8版本。

2.1 类组件

react在hook出来前,只要是需要维护状态的组件都需要用类组件。

子组件

class A extends React.Component {

父组件

class B extends React.Component {

从上面代码可以看出react的类组件主要是通过ref来当做父组件伸手获取子组件的工具。

2.2 函数组件

在函数组件中要获取子组件的数据,需要两步骤

1.将ref传递到子组件中

子组件

function A(props, parentRef) {

父组件

export default () => {

从上面代码可以看出react的函数组件也是通过ref来实现父组件伸手获取子组件数据的,但是呢他有一个明细的缺点,子组件A会向父组件暴露他的所有信息。

2.3 函数组件(优化)

下面就用到hook的一些钩子来做对应的优化

子组件

import React, { useState, useRef, useImperativeHandle, forwardRef } from 'react'

父组件

export default () => {

上面了hook里面的useImperativeHandle做了对应的优化,只对外面暴露子组件的一部分。

3. vue

上面介绍了react中父组件如何获取子组件的数据,接下来让我们也来看看vue中父组件父组件是如何获取子组件信息的。

3.1 方法1 从父组件调用子组件方法获取数据

子组件

methods: {

父组件

methods: {

vue大法真香。(这里吐槽一下react用了hook后我们就需要用更多的api去代替之前只需要一个ref)

3.2 方法2 子组件调用父组件方法通过传值,将子组件的值传到父组件

子组件

methods: {

父组件

复制代码

4. 总结

这篇笔记其实是我自己在写组件库的时候发现react中使用了hook后父组件获取子组件的信息的时候会变得很麻烦,就写了该文章对2大框架这个操作做一个总结记录。

作者:我叫吕胖胖链接:https://juejin.im/post/5db6ad1ef265da4d5420864e来源:掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

如果你想转行IT

却对职业发展不确定

想快速入门IT

却不知从哪开始学起?

那你一定不要错过以下课程

↓↓↓

02d92b178dba5343ac6d73bf9e22fa50.png

亲爱的小伙伴们,非常感谢您一直以来对南京网博的支持和关注~为了给大家带来更丰富的互动信息以及更友好的阅读体验,我们的新公众号上线啦,会给大家带来更丰富的IT资讯!在未来的日子里我们将与您继续携手同行~您也可以扫描下方二维码关注哦~等你~

20d036b4cd03710f133b11b9fa8efc60.png

温馨提示:

      南京网博每个月都有Java、Web前端开班。如果你没有赶上这一期的开班,不要错过下一期的开班哦~~

2019网博实训课程大更新

1.Java+大数据课程主讲:Maven、MyBatis、Spring、SpringMVC、SpringBoot、SpringCloud、ZooKeeper、Dubbo、Shiro、Kafka、SVN、Git/GitHub、EasyUI、WebSocket、Vue.js、Redis分布式缓存、Lucene/Solr全文检索、Nginx集群、SOA服务、Python技术、分布式爬虫、云计算等

2.Web前端课程主讲:微信小程序、Canvas/Echarts、Bootstrap、gulp/grunt、ES6/ES7、TypeScript、Bower、Node.js开发、AMD/CMD/require.js/SeaJS、Vue技术栈、Angular5.0、React、git/github、Less/SASS等

3.Python大数据课程课程:带你体验最前沿的技术。欢迎推荐来学习,请认准网博品牌(七里街校区)!身边有想学习的亲朋好友,可以联系我预定座位啦!

 网博优壹 

20多年来,专注于IT职业教育

做到了毕业学员业内高薪水

成为学员信赖的IT培训机构

60多名全职专业讲师

2000余家合作企业

数万毕业学员

四大实训课程Java+大数据、Android、 Web前端开发、python课程

紧跟行业前沿技术

任君挑选  

官方网站:www.itany.com

课程咨询热线:025-68187666

想获取更多精彩内容

请关注网博优壹官方微信哟

fc5ce12370f9641bfdd5d70d61c8a20e.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值