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
却不知从哪开始学起?
那你一定不要错过以下课程
↓↓↓
亲爱的小伙伴们,非常感谢您一直以来对南京网博的支持和关注~为了给大家带来更丰富的互动信息以及更友好的阅读体验,我们的新公众号上线啦,会给大家带来更丰富的IT资讯!在未来的日子里我们将与您继续携手同行~您也可以扫描下方二维码关注哦~等你~
温馨提示:
南京网博每个月都有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
想获取更多精彩内容
请关注网博优壹官方微信哟