paint-brush
React 19 の新機能: 知っておくべきことby@suniljoshi
481
481

React 19 の新機能: 知っておくべきこと

Sunil Joshi5m2024/07/16
Read on Terminal Reader

React19 には、React Compiler と呼ばれる新しいヘルパーが追加されます。これは、余分な作業をすることなくコードをより高速に実行できる、スマートなコード コンパイル フレンドのようなものです。サーバー上でコンポーネントを事前レンダリングすることにより、RSC はページ速度を自動的に向上させることができます。
featured image - React 19 の新機能: 知っておくべきこと
Sunil Joshi HackerNoon profile picture

React ⚛️は、今日のフロントエンド開発で最も有名な UI ライブラリです


React の競争で先頭に立ちたい開発者にとって、React 19 の新機能を理解することは不可欠です。


機能の概要

  • ⚛️React コンパイラ
  • 🗄️ サーバーコンポーネント 🖥
  • 🔄自動バッチ処理📦
  • 🗒️SEO メタデータ
  • 📈サスペンスによるデータ取得の改善
  • 💼 アセットの読み込み
  • 🪝 強化されたフック


React 19 の革命は刺激的で興味深いです。今すぐ読んでみましょう!

⚛️ React コンパイラ ⚛️

React19 には、React コンパイラ 💡 と呼ばれる新しいヘルパーが追加されます。これは、余分な作業をすることなくコードをより高速に動作させる、賢いコード コンパイル フレンドのようなものです。つまり、Web サイトを作成する人はよりシンプルなコードを記述でき、コンパイラがそれを確実に実行します。これは、部屋を掃除して整理してくれる超賢いアシスタントがいるようなもので、 Reactで遊んで楽しむことに集中できます。

🗄️ サーバー コンポーネント 🖥

React19 にはスーパーパワー「🖥サーバーコンポーネント」が搭載されています。


まるで、要求する前に一部の作業を実行するスマートなレンダリング ツールを持っているようなものです。


React19 は、クライアント側アプリや従来のサーバー側レンダリング (SSR) 設定とは別に、サーバー上で UI コンポーネントをレンダリングします。サーバー上でコンポーネントを事前レンダリングすることで、RSC はページ速度を自動的に向上させることができます。


つまり、Web サイトを開くと、画像や文字がはるかに速く表示されます。これは、多くの魅力的なコンテンツが掲載されている Web サイトでは特に便利です。最も優れている点は、これらのサーバー コンポーネントが Web サイトのニーズに応じてさまざまな方法で動作できることです。


コード例: サーバーコンポーネント


// ServerComponent.server.js

export default function ServerComponent() {

return <div>Hello from the server!</div>;

}


// App.client.js

import React from 'react';

import { createRoot } from 'react-dom/client';

import ServerComponent from './ServerComponent.server';


function App() {

return (

<div>

<ServerComponent />

</div>

);

}


const root = createRoot(document.getElementById('root'));

root.render(<App />);


つまり、サーバー コンポーネントにより Web サイトの読み込みが非常に高速化され、待機時間が短縮され、速度が向上します。

React UI の構築に時間を無駄にしないでください:


今すぐMonster Reactダッシュボードテンプレートをチェックしてください!

🔄自動バッチ処理📦

React 19 では、イベント ハンドラー内のすべての更新の自動バッチ処理が導入されています。つまり、単一のイベント ハンドラー内の複数の状態更新が自動的にバッチ処理されるようになり、再レンダリングが減り、パフォーマンスが向上します。


コード例: 自動バッチ処理


import React, { useState } from 'react';

import { createRoot } from 'react-dom/client';


function App() {

const [count, setCount] = useState(0);

const [text, setText] = useState('');


const handleClick = () => {

setCount(count + 1);

setText('Updated text');

};


return (

<div>

<button onClick={handleClick}>Update</button>

<div>Count: {count}</div>

<div>Text: {text}</div>

</div>

);

}


🗒️SEO メタデータ 📝

React 19 は、ウェブサイトがインターネット上で見つけやすくなる AutoSEO 機能になりました。現在、React は SEO に敏感な要素を簡素化し、タイトル、説明、その他の SEO 関連要素を React アプリケーション内で直接簡単に制御できます。これにより、誰かがインターネットで何かを検索するときに、適切なウェブサイトをより早く見つけることができます。

📈サスペンスによるデータ取得の改善

React 19 は Suspense 機能に基づいて構築されており、データの取得がより簡単かつ直感的になります。新しいデータ取得機能により、コンポーネント内で非同期操作をより適切に処理できるようになりました。

コード例: サスペンスによるデータ取得

import React, { Suspense } from 'react';

import { createRoot } from 'react-dom/client';

const fetchData = () => {

return new Promise(resolve => {

setTimeout(() => {

resolve('Data fetched from server');

}, 2000);

});

};

const DataComponent = React.lazy(async () => {

const data = await fetchData();

return {

default: () => <div>{data}</div>

};

});

function App() {

return (

<div>

<Suspense fallback={<div>Loading...</div>}>

<DataComponent />

</Suspense>

</div>

);

}

const root = createRoot(document.getElementById('root'));

root.render(<App />);

💼 アセットの読み込み

React 19 には、アセットがバックグラウンドで自動的にロードされる機能があり、Web サイトの動作が高速化され、見栄えが良くなります。


現在のページを表示したまま、次のページの画像やその他の情報の読み込みを開始します。つまり、クリックして新しいページに移動すると、超高速で表示されます。


初めて読み込んだときに一瞬奇妙に見える Web サイトを見たことがありますか? たとえば、文字が間違った場所に表示されていたり、色がごちゃ混ぜになっていたりします。React 19 では、これも修正されています。表示する前に、すべてが正しく表示されるようにします。
コード例: 同時レンダリング


import React, { useState, Suspense } from 'react';

import { createRoot } from 'react-dom/client';


const SlowComponent = React.lazy(() => import('./SlowComponent'));


function App() {

const [show, setShow] = useState(false);


return (

<div>

<button onClick={() => setShow(true)}>Show Slow Component</button>

<Suspense fallback={<div>Loading...</div>}>

{show && <SlowComponent />}

</Suspense>

</div>

);

}


const root = createRoot(document.getElementById('root'));

root.render(<App />);


こうすることで、Web サイトは、使用中に邪魔することなく、バックグラウンドで読み込みを行うことができます。重要なことに集中してください。


機能豊富なReactアプリを構築するマテリアルPRO



フック

React 19 では、イベントと楽観的な UI 更新をより効率的に管理するための新しいフックが導入されています。useEvent フックはイベント リスナーを処理するためのより簡単な方法を提供し、useOptimistic フックは楽観的な UI 状態の管理に役立ちます。


コード例: useEvent フック


import React, { useEvent } from 'react';

import { createRoot } from 'react-dom/client';


function App() {

const handleClick = useEvent(() => {

console.log('Button clicked!');

});


return (

<div>

<button onClick={handleClick}>Click Me</button>

</div>

);

}


const root = createRoot(document.getElementById('root'));

root.render(<App />);


コード例: useOptimistic フック


import React, { useOptimistic } from 'react';

import { createRoot } from 'react-dom/client';


function App() {

const [optimisticState, setOptimisticState] = useOptimistic(0);


const handleClick = () => {

setOptimisticState((prevState) => prevState + 1);

};


return (

<div>

<button onClick={handleClick}>Increment</button>

<div>Optimistic Count: {optimisticState}</div>

</div>

);

}


const root = createRoot(document.getElementById('root'));

root.render(<App />);


🌟 まとめ「見逃さないでください!」

この記事ではいろいろなことを話しました。


React 19 の次のバージョンで登場するクールな新機能について簡単に見ていきましょう。


React 19 には、レスポンシブで効率的、かつスケーラブルなアプリケーションをこれまで以上に簡単に構築できる、多数の新機能と改善点が含まれています。同時レンダリングの機能強化から useEvent や useOptimistic などの新しいフックまで、これらのアップデートはReact 開発者に強力なツールを提供します。プロジェクトでこれらの新機能を試し、React エコシステムの最新の進歩を活用してください。


Modernize を使用して最新の React アプリをより速く構築します。


今後のアップデートにご期待ください。そして、楽しいコーディングを!


以前はhttps://blog.wrappixel.com/react-19-whats-new-features/に掲載されていました