react学习---生命周期学习和refs

写react组件的时候,我们写的都是jsx文件,那jsx到页面渲染成功这个过程发生了什么呢?

首先通过react和babel编译将jsx转化为javascript对象,react-dom 负责把这个用来描述 UI 信息的 JavaScript 对象变成 DOM 元素,并且渲染到页面上。

生命周期

挂载阶段的 生命周期:

  1. componentWillMount   组件挂载开始之前,也就是render之前调用这个生命周期钩子
  2. componentDidMount   组件挂载完成以后,也就是 DOM 元素已经插入页面后调用。
  3. componentWillUnmount 组件对应的 DOM 元素从页面中删除之前调用。

 更新阶段的生命周期:

更新阶段也就是通过setState改变数据,导致 React.js 重新渲染组件并且把组件的变化应用到 DOM 元素上的过程。这是一个组件更新的过程

  1. shouldComponentUpdate(nextProps, nextState)     通过这个方法控制组件是否重新渲染。如果返回 false 组件就不会重新渲染。这个生命周期在 React.js 性能优化上非常有用
  2. componentWillReceiveProps(nextProps)  组件从父组件接收到新的props之前调用
  3. componentWillUpdate   组件开始重新渲染之前调用
  4. componentDidUpdate   组件重新渲染并且把更改变更到真实的 DOM 以后调用

ref和react中的DOM操作

虽然在react中,数据驱动,避免了大多数的DOM操作,但有时候我们不的不操作DOM操作,react中只要加入ref属性,就可操作DOM

class AutoFocusInput extends Component {
  componentDidMount () {
    this.input.focus() // 通过this.input即可获取到这个input元素
  }

  render () {
    return (
      <input ref={(input) => this.input = input} />
    )
  }
}

ReactDOM.render(
  <AutoFocusInput />,
  document.getElementById(‘root‘)
)
时间: 2024-10-11 16:00:34

react学习---生命周期学习和refs的相关文章

测试Servlet生命周期学习笔记

测试环境:windows xp旗舰版 软件环境:myclipse8.5+tomcat7.0 ********************************************************************************* 操作方法: 1.新建工程: File-->new-->Java Project-->TestServlet(工程名称)-->Finish. 2.加载servlet-api.jar类包: TestServlet(右键)-->B

vue生命周期学习心得(下)

此文接vue生命周期学习心得(上)http://www.cnblogs.com/pengshadouble/p/7488330.html通过vue生命周期学习心得(上),大至了解了vue生命周期的8个阶段及相关钩子函数触发的时间点,这章我们通过简单的代码看一下具体的运行结果: <template> <div id="container"> <headers></headers> <router-view></router

React组件生命周期小结

转载自:http://www.jianshu.com/p/4784216b8194 下面所写的,只适合前端的React.(React也支持后端渲染,而且和前端有点小区别,不过我没用过.) 相关函数 简单地说,React Component通过其定义的几个函数来控制组件在生命周期的各个阶段的动作. 在ES6中,一个React组件是用一个class来表示的(具体可以参考官方文档),如下: // 定义一个TodoList的React组件,通过继承React.Component来实现 class Tod

关于React的生命周期

React 的主要思想是通过构建可复用组件来构建用户界面.所谓组件其实就是 有限状态机,通过状态渲染对应的界面,且每个组件都有自己的生命周期,它规定了组件的状态和方法需要在哪个阶段进行改变和执行.有限状态机(FSM),表示有限个状态以及在这些状态之间的转移和动作等行为的模型.一般通过状态.事件.转换和动作来描述有限状态机.React 通过管理状态来实现对组件的管理. 虽然组件.状态机.生命周期这三者都不是 React 独创,如果熟悉 Web Components 标准,它与其中的自定义组件的生命

React—组件生命周期详解

React-组件生命周期详解 转自 明明的博客  http://blog.csdn.net/slandove/article/details/50748473 (非原创) 版权声明:转载请注明出处,欢迎加入QQ群(115402375)讨论!博客编写已经转移到http://blog.csdn.net/limm33 在组件的整个生命周期中,随着该组件的props或者state发生改变,它的DOM表现也将有相应的改变,一个组件就是一个状态机,对于特定的输入,它总会返回一致的输出. React为每个组件

react.js 生命周期componentDidUpdate的另类用法:防止页面过渡刷新

场景:数据新增成功之后,需要返回原来的查询表,这时候的查询,需要使用react的生命周期:componentDidUpdate componentDidUpdate() 这个生命周期的作用是当props或state更新之后,使用它更新DOM节点.如果使用不当,则查询页面会不停的调用查询的方法,不停的执行刷新操作.因此,需要给新增的方法增加一个标志,通过这个标志,判断,如果新增成功,则调用一次查询方法,否则,则不调用. 这个标志,通常在 2 个位置使用: 1. action的 新增 方法中: 2.

React生命周期学习整理

一.React生命周期 React 生命周期分为三种状态 1. 初始化 2.更新 3.销毁 初始化 1.getDefaultProps() 设置默认的props,也可以用dufaultProps设置组件的默认属性. 2.getInitialState() 在使用es6的class语法时是没有这个钩子函数的,可以直接在constructor中定义this.state.此时可以访问this.props 3.componentWillMount() 组件初始化时只调用,以后组件更新不调用,整个生命周期

Android 进程的五种生命周期学习

本节学习进程的生命周期: Android系统是尽可能的去保护每一个进程,但是最终需要为新的进程,或者很重要的进程释放以前的老进程.为了决定那个进程被保护,那个被杀死.Android系统根据当前进程中组件的状态,以及运行在进行中的组件决定保留那个,杀死那个进程.当然了系统资源短缺时,进程等级低的先杀死,以此类推. android系统中有五种进程等级: 1: 前台进程(前台进程有五种状态,只有其中一种满足就是前台进程,前台进程是很难被杀死的) a:拥有一个正在与用户交互的Activity(此时Act

android学习笔记(5)Activity生命周期学习

对应若水老师视频教程第8课 一定要看这个视频 每个activity都有它的生命周期,开启它,关闭它,跳转到其它activity等等,都会自动调用以下某种方法.对这些个方法覆写后观察学习. protected void onCreate(Bundle savedInstanceState); protected void onStart(); protected void onRestart(); protected void onResume(); protected void onPause(