ホームページ >ウェブフロントエンド >jsチュートリアル >リアクト19
新機能
React は手動介入なしで自動的にレンダリングを最適化します。
useMemo()、useCallBack()、React.memo
React コンパイラーを使用する理由
開発者にとって手動の最適化は面倒でした。
React は状態の変更とロジックの再レンダリングを自動的に処理するようになりました。
メリット
React は、何をいつ再レンダリングするかを決定します。
開発者の労力を軽減します。
よりクリーンでシンプルなコードベース。
現在、Instagram の運用を強化しています。
新機能
クライアントではなくサーバー上で実行されるコンポーネント。
以前は Next.js によって開発されました (V13 のデフォルト)。
React 19 では、サーバー コンポーネントはネイティブに統合されています。
メリット
SEO フレンドリー: 検索エンジンの最適化を強化します。
パフォーマンスの向上: 最初のページの読み込みが速くなります。
サーバー側実行: API 呼び出しなどのタスクを効率的に処理します。
サーバーコンポーネントの使用方法?
クライアント側 (デフォルト): すべての React コンポーネントはクライアント側で実行されます。
サーバー側: コンポーネントの最初の行として「use Server」を追加します:
'use server'; export default async function requestUsername(formData) { const username = formData.get('username'); return canRequest(username) ? 'successful' : 'failed'; }
重要なメモ
サーバー コンポーネントはクライアント上では実行されません。
アクションと組み合わせることで、フォーム処理や API リクエストなどのタスクを合理化します。
Next.js ユーザーはすでにサーバー コンポーネントを活用できます。 React 19 はこれを React に直接もたらします。
function handleSubmit() { setloading (true); try { const result = await saveData(); setData(result); } catch (err) { setError(err); } finally { setloading(failse); } }
const [state, formAction] = useActionState(async (prevState, formData) => { const result = await saveData(formData); return result; }, null);
USEACTIONSTATE: フォーム処理
送信状態とフォーム検証を自動的に管理します。
const [isSubmitting, setIsSubmitting] = useState(false); async function handleSubmit() { setIsSubmitting(true); try { await submitForm(); } finally { setIsSubmitting(false); } }
useActionState はフォームの送信を簡素化します。
const [state, formAction] = useActionState(async (prevState, formData) => { return await submitForm(formData); });
USEFORMSTATUS: フォームのステータスを追跡
保留中、成功、エラーなどのフォームの状態にアクセスします。
const status = useFormStatus(); <button type = "submit" disabled = { status.pending }> { status.pending ? "Submitting..." : "Submit" } </button>
USEOPTIMISTIC: OPTIMISTIC UI の更新
UX を向上させるために楽観的な更新を簡素化します。
あなたは UI を楽観的に更新し、元に戻すことも処理しました。
'use server'; export default async function requestUsername(formData) { const username = formData.get('username'); return canRequest(username) ? 'successful' : 'failed'; }
useOptimistic を使用すると宣言的になります。
function handleSubmit() { setloading (true); try { const result = await saveData(); setData(result); } catch (err) { setError(err); } finally { setloading(failse); } }
use() とは何ですか?
use() フックは、Promise を直接処理することで、非同期データのフェッチとコンテキストの消費を簡素化します。
非同期状態の手動処理。
const [state, formAction] = useActionState(async (prevState, formData) => { const result = await saveData(formData); return result; }, null);
非同期データを直接取得し、Promise を解決します
const [isSubmitting, setIsSubmitting] = useState(false); async function handleSubmit() { setIsSubmitting(true); try { await submitForm(); } finally { setIsSubmitting(false); } }
利点:
サーバーコンポーネントとは何ですか?
サーバー コンポーネントはサーバー上でレンダリングし、軽量の結果をクライアントに送信して、パフォーマンスを向上させます。
データの取得には useEffect を使用する必要があり、SSR には複雑なツールが必要でした。
const [state, formAction] = useActionState(async (prevState, formData) => { return await submitForm(formData); });
React Server コンポーネントはシームレスに統合されます。
const status = useFormStatus(); <button type = "submit" disabled = { status.pending }> { status.pending ? "Submitting..." : "Submit" } </button>
利点:
React19 では、画像やスクリプトなどのアセットがバックグラウンドで読み込まれる方法が改善されています。
手動構成が必要でした。
function handleClick() { setItems([...items, newItem]); saveItem(newItem).catch(() => setItems(items)); // Revert on error }
アセットは介入なしで効率的にロードされるようになりました。
const [optimisticItems, addOptimisticItem] = useOptimistic(items); function handleClick() { addOptimisticItem(newItem); }
利点:
React 19 がもたらすもの:
以上がリアクト19の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。