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中父子组件数据传递的更多相关文章

  1. React中父子组件间的通信问题

    1.https://blog.csdn.net/sinat_17775997/article/details/59103173 (React中父子组件间的通信问题)

  2. vue2.0 父子组件数据传递prop

    vue的一个核心概念就是组件,而组件实例的作用域是孤立的,所以组件之间是不能直接引用其他组件的数据的.极端点举例来说,就是可以在同一个项目中,每一个组件内都可以定义相同名称的数据. data () { ...

  3. 关于vue.js父子组件数据传递

    vue.js中使用props down,events up的原则进行父子组件间的通信,先来记录下props down,看个例子: <div id="app2"> < ...

  4. React中父子组件传值

    一.首先我们先来看父组件向子组件传值 1.1 我们要明白父组件 --> 子组件 是通过props这个属性来传值的 我们来看父组件的代码 import React from 'react'; im ...

  5. react父子组件数据传递

    子传父 1.首先父组件设定一个自定义函数 getChildDatas = (values) => { //...业务代码 } 2.将该函数暴露在子组件的引用上 <Child getChil ...

  6. Vue2.x之父子组件数据传递

    父传子,并且通过fatherEvent接收子组件传过来的值 <template> <div class='father'> <Son :fatherData=" ...

  7. 五、react中父子组件间如何传值

    1.父组件向子组件传递数据:父组件绑定属性值传给子组件,子组件通过this.props()接受. 2.子组件向父组件传递数据:子组件绑定一个方法,方法中通过this.props.父组件方法名(参数)传 ...

  8. React中父组件与子组件之间的数据传递和标准化的思考

    React中父组件与子组件之间的数据传递的的实现大家都可以轻易做到,但对比很多人的实现方法,总是会有或多或少的差异.在一个团队中,这种实现的差异体现了每个人各自的理解的不同,但是反过来思考,一个团队用 ...

  9. 【Vue】Vue中的父子组件通讯以及使用sync同步父子组件数据

    前言: 之前写过一篇文章<在不同场景下Vue组件间的数据交流>,但现在来看,其中关于“父子组件通信”的介绍仍有诸多缺漏或者不当之处, 正好这几天学习了关于用sync修饰符做父子组件数据双向 ...

随机推荐

  1. 解决Cannot use a scalar value as an array

    这是类型转换的问题,看看上方代码是不是先把布尔值或者0值赋给了一个变量,然后下面循环中又把这个变量当作数组用了

  2. linux sort 命令实用手册

    Linux 中的sort 命令是一个很实用的工具,用于对文本内容以行为单位进行ASCII 码排序,默认按照升序进行排序(当然也可以按照降序). sort 命令的格式如下: sort `参数` `文件名 ...

  3. zoj_2511 Design T-Shirt 贪心

    Design T-Shirt Time Limit: 2 Seconds      Memory Limit: 32768 KB Soon after he decided to design a T ...

  4. CCS进阶——div的宽度和高度是由什么决定的?

    核心知识 文档流/普通流(Normal Flow) 内联元素的宽高(高度是由行高决定的,宽度=内容+border+marging+padding) 块级元素的宽高(高度是内部文档流元素的高度总和,宽度 ...

  5. 在okhttp的callback回调中加Toast出现Cant create handler inside hread that has not called Looper.prepare()...

    2019独角兽企业重金招聘Python工程师标准>>> 分析:callback中回调的response方法中还是在子线程中运行的,所以要调取Toast必须回到主线程中更新ui 解决方 ...

  6. mysql硬件优化

    导致宕机的原因: 1.      运行环境: 35%,运行环境可以看做是支持数据库服务器运行的系统和资源集合,包括操作系统,硬盘以及网络 2.      性能:35% 3.      复制 20% 4 ...

  7. andorid jar/库源码解析

    前言 本篇作为开篇,会大体上说明,需要解读源码的,类库,或者jar. 序 原本,类库和jar的系列准备写到逆向系列课程的,但是那个东西,在写了两篇,就没有后续了,现在也不知道从哪里开始了, 只能等后期 ...

  8. Java——字节和字符的区别

    字节 1.bit=1  二进制数据0或1 2.byte=8bit  1个字节等于8位 存储空间的基本计量单位 3.一个英文字母=1byte=8bit 1个英文字母是1个字节,也就是8位 4.一个汉字= ...

  9. E - No Pain No Game 线段树 离线处理 区间排序

    E - No Pain No Game  HDU - 4630 这个题目很好,以后可以再写写.这个题目就是线段树的离线写法,推荐一个博客:https://blog.csdn.net/u01003321 ...

  10. Spring杂谈 | Spring中的AutowireCandidateResolver

    接口定义 用于推断一个特定的beanDefinition是否能作为指定依赖的候选者的策略接口 public interface AutowireCandidateResolver { // 默认情况下 ...