React中父子组件数据传递
Vue.js中父子组件数据传递:Props Down , Events Up
Angular中父子组件数据传递:Props Down, Events Up
React中父子组件数据传递:Props Down,Props Up
一、React中父子组件数据传递
父 => 子:父亲通过子组件的自定义属性,把自己的数据传递下去
Parent.js:
<Child myNameInChild={this.state.myNameParent}/>
Child.js:
<h3>{this.props.myNameInChild}的照片墙</h3>
子 =>父: 父亲通过子组件的自定义属性,把自己的方法传递下去;子组件调用此方法,传递实参.
"Props Up"的原理:
Parent.js:
doModifyMyName = (newName)=>{ }
<Child modifyName={ this.doModifyMyName }/>
Child.js:
this.props.modifyName('ABC');
Parent p =new Parent()
p.doModifyMyName = function(newName){ ..... }
Child c =new Child()
c.modifyMyName = p.doModifyMyName //父的方法传给子
c.modifyMyName('ABC');
React中没有直接的兄弟间数据传递机制,只能借助父组件: 兄弟1 => 父组件 => 兄弟2
Parent.js
constructor(){
super()
this.c2 = React.createRef() //子组件的引用
}
---------------------------------------------------------------
<h3.MyC03 ref={this.c3}> //子组件的引用绑定到某个孩子
---------------------------------------------------------------------
this.c3.current 是孩子对象
Vue.js中父组件获得子组件的引用:
<Child ref="c2"/>
this.$refs.c2
------------------------------------
<Child #c2/>
@ViewChild('c2',{static:true})
private child2
------------------------------------
React中父组件获得子组件的引用
<Child ref={ }/>
二、理论知识补充: class中的静态(static)成员
类(class) 中的成员分为两大类:
①实例成员:实例属性、实例方法
②静态成员:静态属性、静态方法
三、面试题:React中组件的生命周期钩子函数 ------比较凌乱
提示: React不同版本中生命周期钩子函数各不相同!React16.3和React16.4中的都不相同!
React组件的生命周期钩子函数分为三组:
1)首次渲染相关函数
①contstructor()
②componentWillMount() (已废弃)===getDeriveStateFormProps() 用于将this.props转为this.state
③render()
④componentDidMount() 用于初始化组件中的数据,如异步获取服务器端数据
2)二次渲染相关函数(props属性更改、setState状态修改)
①getDerivedStateFromProps() 需要返回转换得到state对象或null
②shouldComponentUpdate() 需要返回true或false
③render()
④componentDidUpdate()
3)组件卸载相关函数
①componentWillUnmount() 用于销毁组件创建的长期存在的数据,如定时器...
强化记忆:三大框架,组件加载完成和卸载完成钩子函数
Vue.js Angular React
组件加载完成 mounted(){} ngOnInit(){ } componentDidMount(){}
组件即将卸载 beforeDestroy(){} ngOnDestory(){} componentWillUnmount(){}
四、复习:前端技术中创建移动App的技术有哪些?
①原生开发:Android下用Java/Kotlin,IOS下用OC/Swift
②H5/WebView:使用浏览器内核打开特定的页面 ------------Vue.js/Mint-UI
③混编开发:H5/WebView+Cordova/PhoneGap -------------Angular/lonic
④JS Bridge:代码使用JS,使用桥梁转换,运行时是Java或OC ------------ React/RN
⑤Flutter:使用全新的Dart语言,直接在手机GPU上绘图
React中父子组件数据传递的更多相关文章
- React中父子组件间的通信问题
1.https://blog.csdn.net/sinat_17775997/article/details/59103173 (React中父子组件间的通信问题)
- vue2.0 父子组件数据传递prop
vue的一个核心概念就是组件,而组件实例的作用域是孤立的,所以组件之间是不能直接引用其他组件的数据的.极端点举例来说,就是可以在同一个项目中,每一个组件内都可以定义相同名称的数据. data () { ...
- 关于vue.js父子组件数据传递
vue.js中使用props down,events up的原则进行父子组件间的通信,先来记录下props down,看个例子: <div id="app2"> < ...
- React中父子组件传值
一.首先我们先来看父组件向子组件传值 1.1 我们要明白父组件 --> 子组件 是通过props这个属性来传值的 我们来看父组件的代码 import React from 'react'; im ...
- react父子组件数据传递
子传父 1.首先父组件设定一个自定义函数 getChildDatas = (values) => { //...业务代码 } 2.将该函数暴露在子组件的引用上 <Child getChil ...
- Vue2.x之父子组件数据传递
父传子,并且通过fatherEvent接收子组件传过来的值 <template> <div class='father'> <Son :fatherData=" ...
- 五、react中父子组件间如何传值
1.父组件向子组件传递数据:父组件绑定属性值传给子组件,子组件通过this.props()接受. 2.子组件向父组件传递数据:子组件绑定一个方法,方法中通过this.props.父组件方法名(参数)传 ...
- React中父组件与子组件之间的数据传递和标准化的思考
React中父组件与子组件之间的数据传递的的实现大家都可以轻易做到,但对比很多人的实现方法,总是会有或多或少的差异.在一个团队中,这种实现的差异体现了每个人各自的理解的不同,但是反过来思考,一个团队用 ...
- 【Vue】Vue中的父子组件通讯以及使用sync同步父子组件数据
前言: 之前写过一篇文章<在不同场景下Vue组件间的数据交流>,但现在来看,其中关于“父子组件通信”的介绍仍有诸多缺漏或者不当之处, 正好这几天学习了关于用sync修饰符做父子组件数据双向 ...
随机推荐
- Scala教程之:Scala基础
文章目录 常量 变量 代码块 函数 方法 类 case类 对象 trait main方法 这篇文章我们大概过一下Scala的基础概念,后面的文章我们会有更详细的讲解Scala的具体内容. 常量 在Sc ...
- Libra教程之:move语言的特点和例子
文章目录 move语言的特点 资源优先 灵活性 安全性 可验证性 Move语句初探 点对点支付交易脚本 Currency Module move语言的特点 Libra的目标是打造一个全球话的金融和货币 ...
- 【ejabberd】安装XMPP服务器ejabberd(Ubuntu 12.04)
ejabberd ejabberd is a free and open source instant messaging server written in Erlang/OTP. ejabberd ...
- Omnicore RPC API中文文档
2019独角兽企业重金招聘Python工程师标准>>> OmniCore是比特币核心的一个分支,它在比特币协议之上实现了一个新的Omni协议层,用于代币发行.众售等应用,USDT就是 ...
- web前端项目中遇到的一些问题总结(08.23更新)
个人网站 https://iiter.cn 程序员导航站 开业啦,欢迎各位观众姥爷赏脸参观,如有意见或建议希望能够不吝赐教! 写一些最近工作中Vue项目中遇到的问题. 巴啦啦小魔仙,污卡拉,全身变,小 ...
- Spring PropertyPlaceholderConfigurer类载入外部配置
2019独角兽企业重金招聘Python工程师标准>>> 通常在Spring项目中如果用到配置文件时,常常会使用org.springframework.beans.factory.co ...
- Android环境配置----在Ubuntu上安装JDK
jdk download address: jdk-6u22-linux-i586.bin http://www.oracle.com/technetwor ... ownloads/index.ht ...
- 数学--数论--HDU1576 A / B(逆元)
问题描述 要求(A / B)%9973,但由于A很大,我们只被告知n(n = A%9973)(我们给定的A必能被B整除,且gcd(B,9973)= 1). 输入项 数据的第一行是一个T,表示有T组数据 ...
- HDU - 6187 (最大生成树) 最小生成树
Destroy Walls Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others) ...
- 一只简单的网络爬虫(基于linux C/C++)————主事件流程
该爬虫的主事件流程大致如下: 1.获取命令行参数,执行相应操作 2.读取配置文件,解析得到各种设置 3.载入各种模块 4.种子入队,开启DNS解析线程(原始队列不为空时解析) 5.创建epoll,开启 ...