继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

React 19正式稳定啦!都有哪些新变化👇

海绵宝宝撒
关注TA
已关注
手记 433
粉丝 40
获赞 124

React 19来了,带来了许多让人激动的新特性!

你好,Dev,是我 Md Taqui ImamReact 19 现已稳定,让我们来看看有什么新东西以及如何在项目中使用这些新功能。

本指南会用实用例子帮你了解最重要的更新内容。

关注我⭐在我的GitHub

……

操作和表单管理 ⭐

操作是 React 中的一大新增功能,这使得处理表单提交和数据修改变得更简单。

function 更新名字() {
 const [错误, 提交操作] = useActionState(
 async (前一个状态, 表单数据) => {
 const 名称 = 表单数据.get("name");
 try {
 await 更新名字(名称);
 return null; // 无错误
 } catch (错误) {
 return "更新失败";
 }
 },
 null
 );
 return (
 <form action={提交操作}>
 <input type="text" name="name" />
 <button type="submit" disabled={处理中}>
 {处理中 ? "正在更新…" : "更新名字"}
 </button>
 {错误 && <p className="error">{错误}</p>}
 </form>
 );
}

进入全屏;退出

等等

使用表单中的绿色状态按钮 🟢 (例如: 🟢 表示成功)

新的 useFormStatus 钩子让显示加载过程变得很简单。

    import { useFormStatus } from 'react-dom';
    function SubmitButton() {
     const { pending } = useFormStatus();

     return (
     <button disabled={pending}>
     {pending ? '提交中...' : '提交'}
     </button>
     );
    }

开启全屏 关闭全屏

此处省略内容

新的钩子 🎉

1. useOptimistic 🆕
此钩子可以在等待服务器响应时使用乐观更新,提供即时反馈。

    import { useState } from 'react';
    function 用户资料组件({ 用户数据 }) {
     const [用户, setUser] = useState(用户数据);

     return (
     <div>
     <h1>{用户.name}</h1>
     <p>{用户.email}</p>
     </div>
     );
    }

全屏模式; 退出全屏

等等再看

把它保存下来

……

文档元数据功能支持

现在 React 19 原生支持元数据标签(metadata标签)了:

    function BlogPost({ post }) {
     return (
     <article>
     <title>{post.title}</title>
     <meta name="description" content={post.summary} />
     <link rel="canonical" href={post.url} />

     <h1>{post.title}</h1>
     <p>{post.content}</p>
     </article>
     );
    }

进入全屏, 退出全屏


资产加载优化

用于优化资源加载的新API。

import { preload, preinit, preconnect } from 'react-dom';
function App() {
    // 预加载重要的资源
    preload('/fonts/main.woff2', { as: 'font' });
    preinit('/styles/critical.css', { as: 'style' });
    preconnect('https://api.example.com');
    // 返回主组件
    return <Main />;
}

进入全屏 退出全屏


Web 组件支持

React 19 现已完全支持自定义组件:

    function App() {
     return (
     <div>
     <自定义元素
     strProp="hello"
     numProp={42}
     objProp={{ foo: 'bar' }}
     on事件={(e) => console.log(e.detail)}
     />
     </div>
     );
    }

全屏模式, 退出


其他优化 🛠️

将 Ref 用作 prop

// 旧的写法使用 forwardRef
const OldInput = forwardRef((props, ref) => (
 <input ref={ref} {...props} />
));
// React 19 中的新方式
定义一个新输入函数 NewInput({ ref, ...props }) {
 返回一个输入框, 其 ref 属性和 props 属性都被设置好:
}

进入全屏 退出全屏


更棒的错误报告提示 🔥超燃!

React 19 提供了更清晰的错误消息,并且在渲染过程中的 hydration 错误报告方面做得更好:

    const root = createRoot(container, {
     onCaughtError: (error) => {
     // 处理由错误边界捕获的错误
     logError(error);
     },
     onUncaughtError: (error) => {
     // 处理未被捕获的错误
     reportFatalError(error);
     }
    });

进入全屏 退出全屏


就这样吧 😅

React 19 带来了许多激动人心的新功能,使开发变得更加轻松高效。新的表单处理功能、钩子以及改进的资产加载功能,将帮助开发者用更少的代码构建更好的应用体验。

记得,虽然这些功能现在已稳定,但在将现有应用升级到 React 19 时,还是建议彻底测试。

想要了解更多,请参阅官方 React(React 19)宣布公告和相关文档。

掰掰,祝你每天开心,玩得愉快,下次见,下篇博客见。

祝你编程愉快!

随机图片

随机关注

随机

我是自学成才的网页开发者,一直在学习和做有趣的东西。

github

twitter
点击这里访问Taquiimam14的推特主页

个人作品(点击查看我的作品)

buymeacoffee

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP