广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >面试官常问React的生命周期问题
  • 655
分享到

面试官常问React的生命周期问题

2024-04-02 19:04:59 655人浏览 薄情痞子
摘要

React的生命周期 两张图带你理解 React的生命周期 React的生命周期(旧) class Life extends React.Component{

React的生命周期

两张图带你理解 React的生命周期

React的生命周期(旧)

在这里插入图片描述


class Life extends React.Component{
      // 构造器
      constructor(props){
        console.log('Life构造器---constructor');
        super(props)
        this.state={num:0}
      }
      // 计算+1功能
      add=()=>{
        const {num} = this.state
        this.setState({num:num+1})
      }
      // 删除组件
      death=()=>{
        ReactDOM.unmountComponentAtnode(document.getElementById('text'))
      }
      force=()=>{
        this.forceUpdate()
      }
      // 将要挂载
      componentWillMount(){
        console.log('Life将要挂载---componentWillMount');
      }
      // 已经挂载
      componentDidMount(){
        console.log('Life已经挂载---componentDidMount');
      }
      // 删除触发
      componentWillUnmount(){
        console.log('Life删除触发---componentWillUnmount');
      }
      // 是否应该改变数据
      shouldComponentUpdate(){
        console.log('Life是否改变数据---shouldComponentUpdate');
        return true
      }
      // 将要改变数据
      componentWillUpdate(){
        console.log('Life将要改变数据---componentWillUpdate');
      }
      // 改变数据
      componentDidUpdate(){
        console.log('Life改变数据---componentDidUpdate');
      }
      render(){
        console.log('Life---render');
        const {num} = this.state
        return(
          <div>
          <h1>计数器:{num}</h1> 
          <button onClick={this.add}>点我+1</button> 
          <button onClick={this.death}>删除</button> 
          <button onClick={this.force}>不更改任何状态的数据,强制更新</button> 
          </div>
        )
      }
    }
    // 渲染页面
    ReactDOM.render(<Life />, document.getElementById('text'))

挂载步骤

在这里插入图片描述

更新步骤

在这里插入图片描述

删除

在这里插入图片描述

总结: 初始化阶段: 由ReactDOM.render()触发—初次渲染
1. constructor() ---构造器
2. componentWillMount() ---将要挂载
3. render() ---render
4. componentDidMount() ---挂载时更新阶段: 由组件内部this.setSate()或父组件重新render触发
1. shouldComponentUpdate() ---是否要进行更改数据
2. componentWillUpdate() ---将要更新数据
3. render()
4. componentDidUpdate() ---更新数据卸载组件: 由ReactDOM.unmountComponentAtNode()触发
componentWillUnmount() ---卸载

React的生命周期(新)

请添加图片描述

生命周期的三个阶段(新)

初始化阶段: 由ReactDOM.render()触发—初次渲染
1. constructor()
2. getDerivedStateFromProps
3. render()
4. componentDidMount()更新阶段: 由组件内部this.setSate()或父组件重新render触发
1. getDerivedStateFromProps
2. shouldComponentUpdate()
3. render()
4. getSnapshotBeforeUpdate
5. componentDidUpdate()卸载组件: 由ReactDOM.unmountComponentAtNode()触发
1. componentWillUnmount()

重要的勾子

1.render:初始化渲染或更新渲染调用
2.componentDidMount:开启监听, 发送ajax请求
3.componentWillUnmount:做一些收尾工作, 如: 清理定时器

即将废弃的勾子

1.componentWillMount
2.componentWillReceiveProps
3.componentWillUpdate

现在使用会出现警告,下一个大版本需要加上UNSAFE_前缀才能使用,以后可能会被彻底废弃,不建议使用。

到此这篇关于面试官常问React的生命周期问题的文章就介绍到这了,更多相关React生命周期内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 面试官常问React的生命周期问题

本文链接: https://www.lsjlt.com/news/132289.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 面试官常问React的生命周期问题
    React的生命周期 两张图带你理解 React的生命周期 React的生命周期(旧) class Life extends React.Component{ ...
    99+
    2022-11-12
  • android fragment生命周期常见问题有哪些
    在Android开发中,使用Fragment时常见的生命周期问题包括:1. Fragment的创建和销毁:如何正确地创建和销毁Fra...
    99+
    2023-10-20
    android
  • Java多线程面试题(面试官常问)
    进程和线程 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是从一个进程从创建、运行到消亡的过程。在Java中,当我们启动main函数时其实...
    99+
    2022-11-12
  • Java之SpringBean生命周期问题理解
    Spring Bean的生命周期? 首先说一下Servlet的生命周期:实例化,初始init,接收请求service,销毁destroy; Spring上下文中的Bean生命周期也类...
    99+
    2022-11-12
  • Java之SpringBean生命周期问题的示例分析
    小编给大家分享一下Java之SpringBean生命周期问题的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Spring Bean的生命周期?首先说一下S...
    99+
    2023-06-20
  • 面试官常问的 ASP 打包问题,你能回答吗?
    ASP 是一种广泛使用的服务器端脚本语言,它可以用于动态生成网页内容、处理表单数据等。在开发 ASP 网站时,我们通常需要将多个 ASP 文件打包成一个单独的组件,以便于在不同的页面中重复使用。这时,就会遇到一些打包相关的问题。在本文中,...
    99+
    2023-08-07
    打包 面试 unix
  • React 组件的常用生命周期函数汇总
    目录1. 概述2. 生命周期的三个阶段2.1. 创建时(挂载阶段)2.2. 更新时(更新阶段)2.3. 卸载时(卸载阶段)1. 概述 意义:组件的生命周期有助于理解组件的运行方式、完成更复杂的组件功能、分析组件错误原因等...
    99+
    2022-08-15
    React 组件常用生命周期函数 React 组件
  • 面试官问到ThreadLocal的问题怎么回答
    本篇内容主要讲解“面试官问到ThreadLocal的问题怎么回答”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“面试官问到ThreadLocal的问题怎么回答”吧...
    99+
    2022-10-19
  • 面试官必问的ASP和Windows Path相关问题
    在ASP开发中,Windows Path是一个非常重要的概念。因为很多的文件路径都是以Windows Path的形式存在的。因此,面试官在面试ASP开发人员时,一定会问到一些与Windows Path相关的问题。下面,我们将会列举一些常见...
    99+
    2023-09-02
    面试 path windows
  • Vue生命周期和钩子函数的详解与经典面试题
    目录1. vue生命周期2.钩子函数2.1 分为4大阶段8个方法:2.2 初始化阶段2.3 挂载阶段2.4 更新阶段2.5 销毁阶段面试题:总结1. vue生命周期 一组件从 创建 ...
    99+
    2022-11-12
  • 2023 Android面试官 常问的问题以及答案(附最新的Android面试大厂必考174题 )
    前言 已经2023了 但是计算机的寒冬还没有过去 ,但是我们程序员的热情不会被磨灭(有钱就干 越多越有劲)。在这个金三银四的季节 许多公司也发布了更多的招聘岗位 面试机会多了 那我们跟要把握住。以下分享一些面试题给大家,希望能帮到大家找一份...
    99+
    2023-08-16
    android 面试 java
  • Laravel 框架与 Python 索引:面试官最常问的问题是什么?
    Laravel框架与Python索引:面试官最常问的问题是什么? 随着互联网的迅速发展,Web应用程序的需求日益增长。为了满足这个需求,开发人员需要使用一些工具和框架来简化开发过程。 Laravel框架和Python索引是两个非常流行的工具...
    99+
    2023-10-31
    索引 面试 laravel
  • Java IDE 缓存问题:面试官最常问的技术难点之一?
    在 Java 开发中,使用 IDE 编辑器可以大大提高我们的开发效率。然而,有时我们会遇到缓存问题,这是面试官最常问的技术难点之一。本文将介绍 Java IDE 缓存问题的原因和解决方法,并附带演示代码。 Java IDE 缓存问题的原...
    99+
    2023-09-24
    ide 缓存 面试
  • 面试官喜欢问的 Python、Laravel 和对象面试问题有哪些?
    随着人工智能和大数据技术的不断发展,编程语言的需求越来越大。Python和Laravel是当今最流行的编程语言之一,不仅用于开发应用程序,还用于机器学习、数据科学等领域。在面试中,很多公司会考察候选人的Python和Laravel技能,以...
    99+
    2023-09-22
    laravel 对象 面试
  • 实例探究Android应用编写时Fragment的生命周期问题
    管理fragment的生命周期有些像管理activity的生命周期。Fragment可以生存在三种状态: Resumed: Fragment在一个运行中的activity中并且...
    99+
    2022-06-06
    fragment Android
  • 解决@Autowired注入空指针问题(利用Bean的生命周期)
    目录我就写出了下面这样的代码进行抽取问题轻松解决下面介绍其中两种办法第一种JSR250的@PostConstruct第二种是Spring的InitializingBean(定义初始化...
    99+
    2022-11-13
  • 面试官最常问的Java接口打包问题,你是否有答案?
    在Java开发领域中,接口是一个非常重要的概念。接口可以被视为一种契约,规定了类需要实现哪些方法。在实际开发中,我们经常会使用接口来实现多态,提高代码的可扩展性和可维护性。然而,在打包Java应用程序时,接口也经常会成为面试官考察的一个热...
    99+
    2023-11-04
    接口 打包 面试
  • 面试官经常问到的Go语言数据类型问题有哪些?
    Go语言是一门越来越受欢迎的编程语言,它在各种场景下都表现出色。在面试中,面试官经常会问到关于Go语言数据类型的问题。本文将介绍几个常见的问题,并提供相应的演示代码。 基本数据类型 在Go语言中,基本数据类型包括bool、string、...
    99+
    2023-08-18
    数据类型 面试 git
  • 常见的Java面试问题
    JVMJava虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。什么是字节码采用字节码的好处是什么在 Java 中,J...
    99+
    2023-06-03
  • 面试官会问到哪些关于 Spring 同步的问题?
    Spring 是目前最流行的开源框架之一,它提供了丰富的功能和特性,可帮助开发人员更轻松地构建高质量的应用程序。在面试中,面试官经常会问关于 Spring 同步的问题,因此本文将介绍一些常见的问题及其答案。 什么是 Spring 同步? ...
    99+
    2023-09-22
    面试 同步 spring
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作