【前端资讯】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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 代理模式proxy_反向代理是什么

    代理模式proxy_反向代理是什么代理模式 Proxy动机模式定义实例结构要点总结笔记动机在面向对象系统中,由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程额外的访问等),直接访问会给使用者,或者系统结构带来很多麻烦.如何在不是去透明操作对象的同时来管理/控制这些对象特有的复杂性?增加一层间接曾是软件开发中常见的解决方式模式定义为其他对象提供一种代理以控制(隔离,使用接口)对这个对象的访问实例朴素客户端要去使用process 但是process周围需要做很多事情class ISubject{p

  • 撸明白分布式事务(四)

    撸明白分布式事务(四)前言在分布式系统中,消息队列在服务端的架构中的地位非常重要,主要解决异步处理、系统解耦、流量削峰等场景。多个系统之间如果同步通信很容易造成阻塞,同时会将这些系统会耦合在一起。因此,引入了消息队列,一方面解决了同步通信机制造成的阻塞,另一方面通过消息队列进行业务解耦。简单的服务间调用引入mq如下图所示可靠事件模式可靠事件模式,通过引入可靠的消息队列,只要保证当前的可靠事件投递并且消息队列确保事件传递至少一次,那么订阅这个事件的消费者保证事件能够在自己的业务内被消费即可。这里,请读者思考,是否.

  • ringbuffer的常规用法_c语言fputs

    ringbuffer的常规用法_c语言fputs一、ringBuffer介绍ringBuffer称作环形缓冲,也有叫circleBuffer的。就是取内存中一块连续的区域用作环形缓冲区的数据存储区。这块连续的存储会被反复使用,向ringBuffer写入数据总是从写指针的位置开始,如写到实际存储区的末尾还没有写完,则将剩余的数据从存储区的头开始写;从该ringBuffer读出数据也是从读指针的位置开始,如读到实际存储区的末尾…

  • python 朋友圈接口_微信开发Python微信– 分享接口(分享到朋友圈、朋友、空间)…

    python 朋友圈接口_微信开发Python微信– 分享接口(分享到朋友圈、朋友、空间)…本文将带你了解微信开发Python微信–分享接口(分享到朋友圈、朋友、空间),希望本文对大家学微信有所帮助。生成JS-SDK权限验证的签名获取signature(签名)首先要获得1、#获得jsapi_ticket2、#获取当前页面的url#获取当前页面的url  url=””{}://{}{}””.format(self.request.protocol,self.request.host,s…

  • python十进制转二进制函数_python 十六进制转二进制

    python十进制转二进制函数_python 十六进制转二进制Python2python十进制转2进制有内置函数bin方法1:in:bin(1)output:’0b1’方法2:n=int(input(‘请输入要转换进制的数值:’))#x=2#转换为二进制,所以这里取x=2b=[]#存储余数whileTrue:#一直循环,商为0时利用break退出循环…

  • BN层理解_理解六层次总结

    BN层理解_理解六层次总结bn层计算的均值和方差是channel的输入数据是nchw,求得的均值和方差均是长度为c的向量mini-batch指的是一个batch的所有样本对应通道组合成一个minibatch,1个nchw的数据有c个mini-batch一个mini-batch在一起进行求均值和方差HW的归一化,求出NC个均值与方差,然后N个均值与方差求出一个均值与方差的Vector,size为C,即相同通道的一个mini_batch的样本求出一个mean和variance每次迭代时采用的是滑动平均方式更新,.

    2022年10月14日

发表回复

您的电子邮箱地址不会被公开。

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