• react 16.3+ 新生命周期 作业


    1、有哪些⽣命周期被舍弃(3个),哪些⽣命 周期是新增(2个)?

    componentWillMount()、componentWillReceiveProps()、componentWillUpdate()被舍弃,static getDerivedStateFromProps()和getSnapshotBeforeUpdate()是新增

    2、这些⽣命周期被舍弃或新增的原因?以及 新增⽣命周期的参数和作⽤?

    (1)这些旧的生命周期常常被误解以及滥用

    (2)在Fiber架构下这些旧的生命周期可能会执行多次,表现就变得不可预期

    3、react⼏个版本(1.6.3、1.6.4、1.7.0)对⽣ 命周期的相关处理和规划?

    16.3版本:旧的生命周期方法名、别名、新的生命周期方法名有效

    16.4版本:旧的生命周期方法名、别名、新的生命周期方法名有效,但旧的生命周期方法名在开发模式下会有警告提示

    17.0版本:只有别名和新的生命周期方法名有效

    4、为什么要把getDerivedStateFromProps设计为静态⽅法?

    因为隔离组件实例访问,所以也就不能用this.setState()等一些方法,保持该方法的纯粹,它就是用来定义派生state的,除此之外不能进行任何操作

    5、getDerivedStateFromProps被触发执⾏的条件有哪些?

    初始挂载、prop更新、通过setState更新

    6、Derived state的定义是?(如何理解derived state?)

    派生state,derived state是在静态方法getDerivedStateFromProps里根据props按需更新的state

    7、在1.6.3中,setState()不会引起 getDerivedFromProps的执⾏,⽽1.6.4.会,原因是?

    16.4版本进行了纠正,确保了与React即将推出的异步呈现模式的兼容性

    8、1.6.2及其以前升级到1.6.4的⽅案是?

    可以依旧使用旧的生命周期方法名,也可以使用新的生命周期方法名,但两者不能同时使用

    9、1.6.x升级到1.7的⽅案是?

    只能使用新的生命周期方法名

  • 相关阅读:
    如何在局域网安装Redmine(转贴)
    介绍开源的项目管理系统-Redmine
    【转】ios开发证书,描述文件,bundle ID的关系
    【转】Spring+Mybatis+SpringMVC+Maven+MySql搭建实例
    【转】 Tomcat+redis+nginx配置
    【转】Java做服务器开发语言
    【转】程序员的五大陷阱
    一个简单的网页服务器
    【转】Eclipse中创建并运行Servlet项目
    【转】在Eclipse环境下配置Servlet开发环境
  • 原文地址:https://www.cnblogs.com/ruoshuisanqian/p/11260089.html
走看看 - 开发者的网上家园