首页 文章 精选 留言 我的

精选列表

搜索[官方],共10000篇文章
优秀的个人博客,低调大师

React v17.0 RC 释出,官方称“没啥新特色”

React 前一个主要版本的发布是在两年半以前,今天我们(2020年8月10日)发布 v17 RC:没有什么新 Feature!(但笔者认为以下改进和优化还是很为 React 开发者着想的) 渐进式升级:同时使用两个 React 版本 从 React 15 升级到 v16 再到 v17,开发者往往要更新整个 APP 后再统一部署,这种体验对开发者很不友好,周期长甚至带来巨坑。从 React 17 开始,当你升级到 v18 甚至未来的更高版本时,你会有更多的选择: 可以像以前一样将整个 codebase 的 React 一次性全部升级,或者; APP 的一部分升级到 v18 其它部分仍然用 v17 跑,直到整个 APP 完成更新。 在大项目的维护和升级过程中,这一特性尤其重要!想想一下,如果在一个拥有成百上千个组件的项目中,只想升级其中的几个组件到 v18 使用最新的特性,怎么办?所以,为了适应这一场景 v17 作为一个主要版本,将会有一些 breaking changes。渐进式升级是如何运作的,可以运行这个 Demo 看一下 https://github.com/reactjs/react-gradual-upgrade-demo/ 事件代理的改变 在 React 16 和之前版本,多数事件使用 document.addEventListener()。在 v17 中,将使用rootNode.addEventListener() 在 React 17 中 event propagation 默认是停止的!需要添加第三个参数 { capture: true } 到 document.addEventListener 来修正这一问题。 document.addEventListener('click', function() { // Now this event handler uses the capture phase, // so it receives *all* click events below! }, { capture: true }); 其它 Breaking Changes 向浏览器靠齐 事件 onScroll 不再冒泡 React 的 onFocus 和 onBlur 在底层使用原生的 focusin 和 focusout Capture phase 事件使用真正的浏览器 capture phase 监听 不再有 Event Pooling React 17 中移除了“事件池”优化方案,因为在现代浏览器中性能未能提高多少。 function handleChange(e) { setData(data => ({ ...data, // This crashes in React 16 and earlier: text: e.target.value })); } 添加 Effect Cleanup Timing 在 React 17 中 useEffect 的清除函数选择更一致的时机执行,且是异步的。比如:如果组件正在卸载,清除的动作将在屏幕更新后执行。 useEffect(() => { // This is the effect itself. return () => { // This is its cleanup. }; }); 统一返回 undefined 的错误信息 React 17 修正了 forwardRef 和 memo 组件忘记 return 时不报错的问题 let Button = forwardRef(() => { // We forgot to write return, so this component returns undefined. // React 17 surfaces this as an error instead of ignoring it. <button />; }); let Button = memo(() => { // We forgot to write return, so this component returns undefined. // React 17 surfaces this as an error instead of ignoring it. <button />; }); 原生的 Component Stacks 移除私有的 Exports 编译者按:也许你还未来得及熟练使用 React 的 hooks,新版 v17 又来了。是学起来,还是那句老话“学不动了”丢一边? 更新说明:https://reactjs.org/blog/2020/08/10/react-v17-rc.html

优秀的个人博客,低调大师

【最佳实践】esrally:Elasticsearch 官方压测工具及运用详解

作者介绍 魏彬,普翔科技 CTO,开源软件爱好者,中国第一位 Elastic 认证工程师,《Elastic日报》和 《ElasticTalk》社区项目发起人,被 elastic 中国公司授予 2019 年度合作伙伴架构师特别贡献奖。对 Elasticsearch、Kibana、Beats、Logstash、Grafana 等开源软件有丰富的实践经验,为零售、金融、保险、证券、科技等众多行业的客户提供过咨询和培训服务,帮助客户在实际业务中找准开源软件的定位,实现从 0 到 1 的落地、从 1 到 N 的拓展,产生实际的业务价值。 为什么要压测 关于压测,我们先来看下百度百科上的一个定义。 压测,即压力测试,是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患。 从定义不难看出压测的目的,是要测出一个系统的极限

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册