【前端资讯】React v16.6 发布[通俗易懂]

【前端资讯】React v16.6 发布[通俗易懂]【前端资讯】React v16.6 发布

大家好,又见面了,我是你们的朋友全栈君。

本文转自 FEPulse 公众号(微信搜索 FEPulse,精选国内外最新前端资讯,为你把握前端脉搏)。

React v16.6 发布,包含一些便捷的功能,我们对此进行梳理。

React.memo

React.memo 是一个高阶组件,类似于 React.PureComponent,但参数是函数组件而不是类组件。

纯函数的意思是传入同样的输入应该得到同样的输出,对应的,对于一个函数组件而言,如果传入同样的 props,渲染结果也应该一样的话,那么使用 React.memo 包裹这个函数组件则可以获得较大的性能提升。

原理是 React 会对传入的 props 进行浅比较,如果 props 没有变化,则直接返回上一次渲染结果,避免重复渲染。你也可以在 React.memo 的第二个参数中定制自己的比较逻辑。

这里有个小插曲,在起名上,有人问为啥不叫 React.pure,而叫 React.memo 呢?对此,React 的作者 Dan 对此回应:React.memo 中的 memo 是 memoization,即缓存的意思,React.memo 赋予了函数组件缓存的能力,并且 memoization 太难拼写,因此这个方法最终被称为 React.memo。

React.lazy: Code-Splitting with Suspense

Suspense 最初是由 Dan 在今年 3 月份的 JSConf Iceland 2018 中提出,我们对此也做了详细介绍: 【前端资讯】React 的未来:Time Slicing 和 Suspense

从 v16.6 开始,你可以使用 Suspense 组件和 React.lazy 方法做 Code Splitting。

需要注意的是,这种使用方式还不支持 SSR。

static contextType

从 v16.3 开始,React 引进了 new Context API,但发布之后反馈不太理想,使用起来比较困难,因此从 v16.6 开始添加了一个便利的 API 来使用类组件中的 context value。

static getDerivedStateFromError()

React v16 引入了 Error Boundaries 来处理渲染时抛出的错误,同时错误发生时也会触发 componentDidCatch。在触发之前,错误的组件将被当做 null 处理,但这可能不符合父组件的 ref 不能为 null 的预期。同时,它也无法从服务器上的错误中恢复,因为 Did 开头的生命周期方法在服务器端并不会触发。

因此,React v16.6 添加了 static getDerivedStateFromError(error) 方法,允许开发者在 render 完成之前渲染 Fallback UI。这个生命周期函数触发的条件是子组件抛出错误,然后 getDerivedStateFromError 接收这个错误参数后更新 state。

Deprecations in StrictMode

弃用了 StrictMode 中的两个 API:ReactDOM.findDOMNode() 和 Legacy Context。

转载于:https://juejin.im/post/5bd26c9351882529306e0857

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107233.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQL 对decimal类型转换为int类型

    SQL 对decimal类型转换为int类型CAST(SaleQtyASINT)-CAST(ISNULL(Qty,0)ASINT)CountQtyselectISNULL(CAST(E.QtyASINT),0)FROMOrderDetailE空值需要默认为0即可转载于:https://www.cnblogs.com/Warmsunshine/p/10868864.html…

    2022年7月20日
    20
  • Singular Value Thresholding (SVT) 奇异值阈值

    Singular Value Thresholding (SVT) 奇异值阈值这个算法受到压缩感知中迭代算法的启发,在迭代过程中对矩阵进行SVD,然后将较小的奇异值设置为0,生成新的矩阵进行迭代。该算法运算速度快,对于高位低秩矩阵的恢复非常有效。

    2022年6月2日
    52
  • 3分钟搞定下载微信视频号视频!无需第三方软件,亲测有效!

    3分钟搞定下载微信视频号视频!无需第三方软件,亲测有效!2020年是视频号的元年,现在2021视频号还处在发展初期,但是它的潜力是巨大的,将来的价值会超过抖音。你在视频号上点赞的视频,你的好友都会看到,这一点非常有利于营销推广。但抖音上的粉丝和微信联系人是割裂的,我们所有的社交关系都在微信上。但是视频号的短视频内容无法像抖音、快手一样,保存本地或者复制作品链接进行解析下载。有没有其他小技巧能绕过视频号未完善的功能,直接保存视频内容呢?当然有,请记住一句话,在android的系统中,视频是所见即所得本文只针对android系统,不需要借助任何第三方软件,

    2022年6月17日
    49
  • 汉罗塔问题的递归实现「建议收藏」

    汉罗塔问题的递归实现「建议收藏」#includeusingnamespacestd;voidmove(intm,chara,charb);voidhanoi(intm,charone,chartwo,charthree);intmain(){  chararray[10]={‘A’,’B’,’C’,’D’,’E’,’F’};  hanoi(4,’A’,’B’,’C’);

    2022年10月12日
    3
  • SpringCloud版本介绍[通俗易懂]

    SpringCloud版本介绍[通俗易懂]SpringCloud项目目前是快速迭代期,版本变化快。大版本版本号规则SpringCloud并没有熟悉的数字版本号,而是对应一个开发代号。Cloud代号 Boot版本(train) Boot版本(tested) lifecycle Angle 1.2.x incompatiblewith1.3 EOLinJuly2017 …

    2022年5月7日
    157
  • informix数据库建表语句_sqlserver创建数据库

    informix数据库建表语句_sqlserver创建数据库[b]1、安装[/b]a:先到IBM官网下载数据库(企业版本的12.10)b:执行id_stall程序进行安装c:默认创建实例ol_informix1210[color=darkred]d:默认创建的实例是包含了sbspace表空间的,新建的实例默认是不包含表空间的如果需要处理大对象数据(clob)的话,则需要通过onspa…

    2022年8月30日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号