发布网友 发布时间:2022-04-22 14:35
共3个回答
热心网友 时间:2022-04-22 16:04
个人意见,觉得R16最重要的是 MIT license (非技术层面),然后就是服务器渲染,感觉以前的整个服务器端渲染的实现在react里的地位,就是个小婢女,R16后应该可以是个小妾了,可以正式用用了(不过事实上不少大的网站已经在用了,网易严选,pinterest.com,知乎应该也是)。其它一些开发友好的改进也是不错地,而Fiber的出现让我们有更多的期待。MIT license, 这个沸沸扬扬了好一阵,如果再不改,可能React 会给更多的大公司放弃,也带了一个坏榜样给open source 。其实*做得比不是太差,只是可能没想到React 那么成功。如果再去掉原来的BSD+Patents, 很多人的态度恐怕就是“我能理解你,但我还是得放弃你“,现在*终于开了个好头,大家也多支持支持吧。不过不知道reactnative有没希望
热心网友 时间:2022-04-22 17:22
Modal和tooltip 的实现有了Portals后可以实现得更优雅,特别是 Portals是按React组件树上的层级来冒泡事件的,就是即使Portals产生的Dom是当前容器组件之外,但事件(比如onclick)还是可以冒泡到容器组件。不过这个特性可能也会带来一些困扰Error Boundaries 可以让错误处理更优雅些,而且最关键的是,一旦你利用Error Boundaries 处理好了漏网的运行时错误,React就不会处于一个异常状态,你就无需通过刷新页面的方式来恢复你的整个程序。这其实更让React 在容错性方面的体验能接近原始的JS开发文件尺寸的减小,主要应该得益于rollup的使用,去除属性白名单也有一点帮助(支持自定义属性附带的一个好处)
热心网友 时间:2022-04-22 18:57
对大量的React-like库的影响。像inferno/preact/anu/react-lite,他们都在v16上面临了一个重大拐点。正如很多文章提到的,这次换Fiber Reconciler带来了全新的特性,比如render函数可以返回数组、字符串、数字。这在Stack Reconciler上是很难做到的,而上述的react-like库,无一例外都是使用的Stack Reconciler。现在大家刚开始从v15迁移,无论是React@16 还是上述React-like库们都保持了对v15的高度兼容,因此暂时没什么问题。等到Fiber的特性慢慢推广,甚至开放出更多可能性(比如异步模式)的时候,上述React-like们未来如何跟进就成了问题。可能有人要说,React-like们重写成fiber架构就行了呗这么说可能忽视了Fiber这东西的复杂度,以前StackReconciler其实只是简单的递归函数调用,不到300行代码就能演示个大概,而现在的Fiber,React团队号称搞了一年,虽然已经正式发布,但目前还是只开放了同步模式,异步渲染的调度到现在也还没完全搞定,复杂度完全不在一个数量级个人开发者自己从头撸React-like的时代,从v16开始可能要划上句号了不是说不可能,我相信还是有很多牛人"能"自己撸的,但是这种复杂度高度集中,重写一遍很难带来好处的东西,重复造轮子是不划算的。写React-like库,最大的优化点其实是renderer——即ReactDOM的部分,无论是去掉浏览器兼容代码还是事件系统,说白了都是和DOM相关。把整个React都重写一遍,既有历史原因(以前ReactDOM只是个空壳子),也因为Stack Reconciler并不复杂且无从复用,只能一锅端。而在Fiber中,不仅React和Renderer高度解耦,Reconciler也是纯调度、和宿主环境无关、可复用的。