React+ANTD项目使用后的一些关于生命周期比较实用的心得
1. constructor()
constructor(props){
super(props)
this.state=({
})
}
一定先写super 可以接收从父组件传来的值
父组件往子组件传值的方法
<ChildComponent nextValue={xxx.xxx} nextValue2={xxx.xxx}/>
直接在组件中写属性名等于属性值就可以,有多少传多少
在子组件 ChildComponent 中获取父组件传来的值只需要用
this.props.nextValue
就可以得到父组件传来的值
由此衍生一个问题,子组件如何给父组件传值
首先,需要在父组件定义一个方法(agechange),然后将方法传给子组件,
class App extends Component {
agechange=(age)=>{
alert(age)
} render() { return (
<div className="App">
<Child agechange={this.agechange}/> //将方法传给子组件
</div>
)
}
}
在子组件中调用这个方法,将需要传给父组件的值,通过这个方法传给父组件,
class Child extends Component {
constructor(props){
super(props)
this.state=({
age:0
})
}
handleChange=()=>{
this.setState({
age:this.state.age+3
})
this.props.agechange(this.state.age) //将子组件的age值传给父组件
}
render(){
return(
<div>
<button onClick={this.handleChange.bind(this)}>点击增加age</button>
</div>
)
}
}
2.componentWillMount
关于componentWillMount方法只想说一点,它的调用在constructor之后,在render之前,在这方法里的代码调用setState方法不会触发重渲染
3.componentDidMount
一般的从后台(服务器)获取的数据,都会与组件上要用的数据加载有关,所以都在componentDidMount方法里面作
4.componentWillReceiveProps
当父组件传给子组件的props发生改变时,子组件可以通过componentWillReceiveProps 方法接收,可以setState 重新渲染组件
当父组件通过ajax异步获取的值需要传给子组件时,子组件可以用到componentWillReceiveProps(nextProps) 关于setState() 它不是同步的,也不能说是异步的,所以不要在setState之后,直接用state中的值,很容易出错。
React+ANTD项目使用后的一些关于生命周期比较实用的心得的更多相关文章
- 基于webpack+react+antd 项目构建
工欲善其事必先利其器,学习React也是如此. 下面分享一篇基于webpack+react+antd 项目构建的好文章, https://blog.hduzplus.xyz/articles/2017 ...
- React 入门学习笔记整理(七)—— 生命周期
(1)react 生命周期 只有类组件有生命周期,函数组件没有生命周期 1.挂载阶段:这些方法会在组件实例被创建和插入DOM中时被调用: 1)constructor(props) 初始化组件的状态.绑 ...
- react.js 从零开始(二)组件的生命周期
什么是生命周期? 组件本质上是一个状态机,输入确定,输出一定确定. 当状态改变的时候 会触发不同的钩子函数,可以让开发者做出响应.. 一个组件的生命周期可以概括为 初始化:状态下 可以自定义的函数 g ...
- React文档(六)state和生命周期
想一下之前的章节时钟的例子. 目前为止我们只学习了一直方式去更新UI. 我们调用ReactDOM.render()方法去改变渲染的输出: function tick() { const element ...
- React Native组件(一)组件的生命周期
相关文章 React Native探索系列 前言 React Native有很多组件比如Image.ListView等等,想要合理的使用组件,首先要先了解组件的生命周期. 1.概述 无论你是开发And ...
- 项目构建之maven篇:6.生命周期与插件
项目生命周期 清理 初始化 编译 測试 打包 部署 三套生命周期 1.clean pre-clean 运行一些须要在clean之前完毕的工作 clean 移除全部上一次构建生成的文件 post-cle ...
- Maven项目构建利器05——Maven的生命周期
Maven各个构建环节执行的顺序: 不能打乱顺序, 必须按照既定的正确顺序(编译,测试.打包.部署)来执行Maven的核心程序中定义了抽象的生命周期, 生命周期中各个阶段的具体任务是由插件来完成的,可 ...
- 从 0 到 1 实现 React 系列 —— 3.生命周期和 diff 算法
看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/ref/. ...
- react学习(6)——关于组件生命周期的问题
在项目开发的过程中,遇到了一个问题: 父组件请求后台数据,收到后将数据以props传给子组件,子组件根据收到数据的不同,显示不同的内容,同时,子组件自身可以根据click操作改变根据父组件的数据显示的 ...
随机推荐
- www-authenticate与BASE-64认证技术
www-authenticate是一种简单的用户身份认证技术.很多验证都采用这种验证方式,尤其在嵌入式领域中.优点:方便缺点:这种认证方式在传输过程中采用的用户名密码加密方式为BASE-64,其解码过 ...
- Android光线传感器-android学习之旅(65)
主要讲解光线传感器的使用,其实所有的传感器用法类似 主要是定义一个TextView用来显示光线强度,用完了以后记得在OnDestory里面释放资源 代码如下 public class MainActi ...
- 设计模式之——工厂模式(C)
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41219129 主要介绍抽象工厂模式,以及工厂方法和抽象工厂 ...
- Android进阶(十二)Fragment VS Activity
Fragment VS Activity Android是在Android 3.0 (API level 11)开始引入Fragment的. 可以把Fragment想成Activity中的模块,这 ...
- android官方技术文档翻译——Android Lint
本文译自androd官方技术文档<Android Lint>,原文地址:http://tools.android.com/tips/lint. 本文地址:http://blog.csdn. ...
- H5的学习之旅-H5的实体(14)
H5有些关键字比如<等等是显示不出来的,这时候,就需要用实体来表示,实体我理解就是最初的编码 代码实例 <!DOCTYPE html> <html lang="en& ...
- 【算法导论】单源最短路径之Bellman-Ford算法
单源最短路径指的是从一个顶点到其它顶点的具有最小权值的路径.我们之前提到的广度优先搜索算法就是一种无权图上执行的最短路径算法,即在所有的边都具有单位权值的图的一种算法.单源最短路径算法可以解决图中任意 ...
- 开源网络监控管理系统:OpenNMS
OpenNMS是一个开源的企业级基于Java/XML的分布式网络和系统监控管理平台.OpenNMS是管理网络的绝好工具,它能够显示网络中各中终端和服务器的状态和配置,为方便地管理网络提供有效的信息. ...
- Linux C系统编程:信号与定时器的使用
#include <stdio.h> #include <signal.h> void do_alarm(int num); int main(void) { //注册一个定时 ...
- iOS中UITableView分割线左侧顶齐
iOS 7开始UITableView的分割线不在从左侧边界开始了,而是默认空出了一段距离. 如果想要使用默认的分割线而且还要从左侧边界开始的话,有几种解决方式: 1.在tableView的代理方法中设 ...