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

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

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

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

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

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

编译器尚未到来

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

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

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

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

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

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

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

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

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

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

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

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

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

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

可以告别 forwardRef,被 ref 取代

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

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

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

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

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

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

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

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

另一个值得注意的改进是,现在支持从任意组件动态更新 <meta> 标签。Llc28资讯网——每日最新资讯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 将在显示组件之前加载样式表,这也为懒加载样式提供了可能性:Llc28资讯网——每日最新资讯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 标签预加载。Llc28资讯网——每日最新资讯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 博客的说法,它是符合测试标准的。Llc28资讯网——每日最新资讯28at.com

PropTypes 被移除了

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

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

如何为 React 19 做好准备?

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

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

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

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

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

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

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

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

标签:
  • 热门焦点
  • 官方承诺:K60至尊版将会首批升级MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版将会搭载天玑9200+处理器和独显芯片X7的同时,Redmi给出了官方承诺,K60至尊重大更新首批升级,会首批推送MIUI 15。也就是说虽然
  • 红魔电竞平板评测:大屏幕硬实力

    前言:三年的疫情因为要上网课的原因激活了平板市场,如今网课的时代已经过去,大家的生活都恢复到了正轨,这也就意味着,真正考验平板电脑生存的环境来了。也就是面对着这种残酷的
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 讲故事上个月我写过一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,当时用的是 GDIView + WinDbg 把问题搞定,前者用来定位泄露资源,后者用来定位泄露代码,后面有朋友反
  • 小红书1周涨粉49W+,我总结了小白可以用的N条涨粉笔记

    作者:黄河懂运营一条性教育视频,被54万人&ldquo;珍藏&rdquo;是什么体验?最近,情感博主@公主是用鲜花做的,火了!仅仅凭借一条视频,光小红书就有超过128万人,为她疯狂点赞!更疯狂的是,这
  • 慕岩炮轰抖音,百合网今何在?

    来源:价值研究所 作者:Hernanderz&ldquo;难道就因为自己的一个产品牛逼了,从客服到总裁,都不愿意正视自己产品和运营上的问题,选择逃避了吗?&rdquo;这一番话,出自百合网联合创
  • 猿辅导与新东方的两种“归途”

    作者|卓心月 出品|零态LT(ID:LingTai_LT)如何成为一家伟大企业?答案一定是对&ldquo;势&rdquo;的把握,这其中最关键的当属对企业战略的制定,且能够站在未来看现在,即使这其中的
  • 2299元起!iQOO Pad明晚首销:性能最强天玑平板

    5月23日,iQOO如期举行了新品发布会,除了首发安卓最强旗舰处理器的iQOO Neo8系列新机外,还在发布会上推出了旗下首款平板电脑——iQOO Pad,其最大的卖点
  • 滴滴违法违规被罚80.26亿 共存在16项违法事实

    滴滴违法违规被罚80.26亿 存在16项违法事实开始于2121年7月,历经一年时间,网络安全审查办公室对“滴滴出行”网络安全审查终于有了一个暂时的结束。据“网信
Top