当前位置:首页 > 科技  > 软件

开发者对 React 19 Beta 发布感到困惑

来源: 责编: 时间:2024-05-09 09:21:47 218观看
导读React 19 beta 终于来了,但其中一些非常棒的功能却因困惑和沟通不畅而黯然失色。React 19 beta 可以随时发布,但现在选择在 2024 年 3 月 25 日发布实属最佳,因为开发世界暂时没有其他重大事件。编译器尚未到来一些开发

nfG28资讯网——每日最新资讯28at.com

React 19 beta 终于来了,但其中一些非常棒的功能却因困惑和沟通不畅而黯然失色。nfG28资讯网——每日最新资讯28at.com

React 19 beta 可以随时发布,但现在选择在 2024 年 3 月 25 日发布实属最佳,因为开发世界暂时没有其他重大事件。nfG28资讯网——每日最新资讯28at.com

编译器尚未到来

一些开发者对这次发布持乐观态度,但也有许多人担心此次版本中没有提到编译器。nfG28资讯网——每日最新资讯28at.com

React 编译器是 React 团队长时间实验的工具,目前用于运行 Instagram,并且预计很快会发布。开发者们对编译器的期望很高,因为它将减少手动记忆化的需求,这是一项耗时且容易出错的 React 修补工作。有了编译器,React 将更善于判断何时需要更新 UI,何时不需要,从而提升性能。nfG28资讯网——每日最新资讯28at.com

但我们仍不确定编译器何时能正式发布。可能在五月,也许是 2024 年或 2026 年?希望它能在新 GTA 发布前上线!nfG28资讯网——每日最新资讯28at.com

你将享受更多的服务器端支持

SPA(单页应用)爱好者可能对这些消息不太满意,因为 React 仍在继续推进对服务器端特性的支持。nfG28资讯网——每日最新资讯28at.com

其实,SPA 并不适合描述这类应用程序。任何认为应用和 API 应该完全分开的开发者都可能不喜欢 React 正在推进的方向。nfG28资讯网——每日最新资讯28at.com

use server 和 actions 引入了一个新的思维模式,在这一模式下,可以在服务器或浏览器中无缝运行代码,除非明确指定其他方式。nfG28资讯网——每日最新资讯28at.com

这种新的思维模式通过 actions 得到了扩展,能够处理待处理和错误状态。nfG28资讯网——每日最新资讯28at.com

然而,这个新模型在博客文章中解释得并不清楚,容易让 React 开发者感到困惑。nfG28资讯网——每日最新资讯28at.com

这也可以理解,因为新的 React 文档建议开发者使用基于 React 的框架,而不是直接使用 React。但另一方面,这也使得直接使用 React 的开发者面临困难局面。nfG28资讯网——每日最新资讯28at.com

我们有了新的 hooks 和表单操作,可以直接从表单元素级别获取表单状态。nfG28资讯网——每日最新资讯28at.com

新的 API 可以通过 use 函数调用来挂起功能,还提供了服务器组件。nfG28资讯网——每日最新资讯28at.com

React 团队需要付出大量努力来向新手程序员解释这些复杂内容。nfG28资讯网——每日最新资讯28at.com

但也有一些不错的方面。nfG28资讯网——每日最新资讯28at.com

可以告别 forwardRef,被 ref 取代

forwardRef 现在将被替换,你可以直接用 ref 传递组件元素。这是一个让人意外的好变化。nfG28资讯网——每日最新资讯28at.com

可以直接使用 Context 而不是 Context.Provider

现在提供上下文时,你无需使用 Context.Provider,而是直接使用 Context。示例如下:nfG28资讯网——每日最新资讯28at.com

const ThemeContext = createContext('');function App({children}) {  return (    <ThemeContext value="dark">      {children}    </ThemeContext>  );  }

可以更方便地清理被卸载的 refs:

通过在组件卸载时清理关联的 refs,可以确保没有悬挂的引用或潜在的内存泄漏。nfG28资讯网——每日最新资讯28at.com

<input  ref={(ref) => {    // 当 ref 被创建时,执行一些初始化操作    if (ref) {      // 初始化代码,例如,添加事件监听器或设置属性    }    // 返回清理函数,在元素被移除时调用    return () => {      // 清理代码,例如,移除事件监听器或重置属性    };  }}/>

可以在任何组件中定义 <meta> 标签

另一个值得注意的改进是,现在支持从任意组件动态更新 <meta> 标签。nfG28资讯网——每日最新资讯28at.com

import { Helmet } from "react-helmet";function BlogPost({ post }) {  return (    <article>      <Helmet>        <title>{post.title}</title>        <meta name="author" content="Josh" />        <link rel="author" href="https://twitter.com/joshcstory/" />        <meta name="keywords" content={post.keywords} />      </Helmet>      <h1>{post.title}</h1>      <p>Eee equals em-see-squared...</p>    </article>  );}

可以在组件级别使用样式表

现在,在组件级别添加样式将不会出现任何问题。React 将在显示组件之前加载样式表,这也为懒加载样式提供了可能性:nfG28资讯网——每日最新资讯28at.com

function ComponentOne() {  return (    <Suspense fallback="loading...">      <link rel="stylesheet" href="foo" precedence="default" />      <link rel="stylesheet" href="bar" precedence="high" />      <article class="foo-class bar-class">        {...}      </article>    </Suspense>  )}

可以预加载资源

在 React 19 中,你将能够在组件中使用函数预加载资源,而不是在 HTML 中通过 HTML 标签预加载。nfG28资讯网——每日最新资讯28at.com

import { prefetchDNS, preconnect, preload, preinit } from 'react-dom'function MyComponent() {  preinit('https://.../path/to/some/script.js', {as: 'script' }) // loads and executes this script eagerly  preload('https://.../path/to/font.woff', { as: 'font' }) // preloads this font  preload('https://.../path/to/stylesheet.css', { as: 'style' }) // preloads this stylesheet  prefetchDNS('https://...') // when you may not actually request anything from this host  preconnect('https://...') // when you will request something but aren't sure what}

基本的自定义元素支持

React 团队仍在努力支持 HTML 自定义元素。虽然目前还没有针对 React 19 beta 的官方测试结果,但根据 React 博客的说法,它是符合测试标准的。nfG28资讯网——每日最新资讯28at.com

PropTypes 被移除了

PropTypes 是 React 团队做出的一个奇怪决策,当时他们完全忽略了 TypeScript 的存在。nfG28资讯网——每日最新资讯28at.com

幸运的是,PropTypes 在 2017 年被弃用,现在处理它们的代码已从 React 中移除。这意味着在代码库中保留这些怪物般的工具已经没有意义了。如果想要了解自己正在使用的类型,至少需要将代码库重写为 TypeScript。nfG28资讯网——每日最新资讯28at.com

如何为 React 19 做好准备?

React 19 beta 已经发布,但这并不意味着你必须立刻更新。我建议等待正式发布。然而,你可以先安装 React 18.3.0。它和 18.2.0 类似,但会显示关于在 React 19 中将被废弃的功能的提示信息。nfG28资讯网——每日最新资讯28at.com

因此,你可以提前做好准备。nfG28资讯网——每日最新资讯28at.com

你可以在 npm 上找到 React 19 beta 和 React 18.3.0 版本的构建包。nfG28资讯网——每日最新资讯28at.com

React 19 beta 的源码暂时不可用。nfG28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-87480-0.html开发者对 React 19 Beta 发布感到困惑

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 一文彻底搞明白组合模式

下一篇: WPF UI更新技巧:掌握EventHandler的基础与Dispatcher的高级应用

标签:
  • 热门焦点
  • 直屏旗舰来了 iQOO 12和K70 Pro同台竞技

    旗舰机基本上使用的都是双曲面屏幕,这就让很多喜欢直屏的爱好者在苦等一款直屏旗舰,这次,你们等到了。据博主数码闲聊站带来的最新爆料称,Redmi下代旗舰K70 Pro和iQOO 12两款手
  • 六大权益!华为8月服务日开启:手机免费贴膜、维修免人工费

    8月5日消息,一年一度的华为开发者大会2023(Together)日前在松山湖拉开帷幕,与此同时,华为8月服务日也式开启,到店可享六大专属权益。华为用户可在华为商城Ap
  • 2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • K8S | Service服务发现

    一、背景在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关、注册中心、配置中心等相关服务,可以被集群外部访问;图片对于测试「Tes」环境或者
  • SpringBoot中使用Cache提升接口性能详解

    环境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架从 3.1 开始,对 Spring 应用程序提供了透明式添加缓存的支持。和事务支持一样,抽象缓存允许一致地使用各
  • 零售大模型“干中学”,攀爬数字化珠峰

    文/侯煜编辑/cc来源/华尔街科技眼对于绝大多数登山爱好者而言,攀爬珠穆朗玛峰可谓终极目标。攀登珠峰的商业路线有两条,一是尼泊尔境内的南坡路线,一是中国境内的北坡路线。相
  • Android 14发布:首批适配机型公布

    5月11日消息,谷歌在今天凌晨举行了I/O大会,本次发布会谷歌带来了自家的AI语言模型PaLM 2、谷歌Pixel Fold折叠屏、谷歌Pixel 7a手机,同时发布了Androi
  • onebot M24巧系列一体机采用轻薄机身设计,现已在各平台开售

    onebot M24 巧系列一体机目前已在线上线下各平台同步开售。onebot M24 巧系列采用一体化轻薄机身设计,最薄处为 10.15mm,拥有宝石红、午夜蓝、石墨绿、雅致
  • 荣耀Magic4 至臻版 首创智慧隐私通话 强劲影音系统

    2022年第一季度临近尾声,在该季度内,许多品牌陆续发布自己的最新产品,让大家从全新的角度来了解当今的手机技术。手机是电子设备中,更新迭代十分迅速的一款产品,基
Top