DevGang
Авторизоваться

React 19: Новые возможности и обновление

React 19 — стабильная версия, доступная на npm! Это обновление включает множество функций и улучшений, направленных на оптимизацию разработки, повышение производительности и упрощение работы с распространенными UI-паттернами. В этой статье подробно описано, что нового в React 19 и как использовать эти функции в ваших проектах.

Основные изменения в React 19

Действия и асинхронные переходы

Упрощается управление асинхронными операциями (изменение данных, состояния ожидания, обработка ошибок, оптимистичные обновления) с помощью useTransition или нового хука useActionState. Это позволяет автоматизировать обработку состояний ожидания, улучшить обработку ошибок и управлять отправкой форм через элементы с атрибутами action или formAction

function ChangeName({ name, setName }) {
  const [error, submitAction, isPending] = useActionState(
    async (previousState, formData) => {
      const error = await updateName(formData.get("name"));
      if (error) {
        return error;
      }
      redirect("/path");
      return null;
    },
    null,
  );

  return (
    <form action={submitAction}>
      <input type="text" name="name" />
      <button type="submit" disabled={isPending}>Update</button>
      {error && <p>{error}</p>}
    </form>
  );
}

Оптимистичные обновления с useOptimistic

Новый хук обеспечивает мгновенную обратную связь пользователям, пока ожидают асинхронного ответа.

function ChangeName({ currentName, onUpdateName }) {
  const [optimisticName, setOptimisticName] = useOptimistic(currentName);

  const submitAction = async (formData) => {
    const newName = formData.get("name");
    setOptimisticName(newName);
    const updatedName = await updateName(newName);
    onUpdateName(updatedName);
  };

  return (
    <form action={submitAction}>
      <p>Your name is: {optimisticName}</p>
      <input type="text" name="name" />
    </form>
  );
}

Улучшенный API

Более гибкое создание компонентов за счет условной отрисовки на основе промисов и контекстов.

import { use } from 'react';
function Comments({ commentsPromise }) {
  const comments = use(commentsPromise);
  return comments.map(comment => <p key={comment.id}>{comment}</p>);
}

Управление метаданными

React 19 поддерживает непосредственную отрисовку тегов <title>, <meta>, и <link> в компонентах, автоматически перемещая их в <head>.

function BlogPost({ post }) {
  return (
    <article>
      <title>{post.title}</title>
      <meta name="author" content="Author Name" />
    </article>
  );
}

Управление стилями и скриптами

Встроенная поддержка таблиц стилей с приоритетами и асинхронных скриптов, обеспечивающих дедупликацию и правильный порядок загрузки.

<link rel="stylesheet" href="styles.css" precedence="default" />
<script async src="script.js"></script>

Серверные компоненты и действия

Стабильная поддержка серверных компонентов и Server Actions (use server) позволяет вызывать асинхронные функции на сервере из клиентских компонентов без лишних сложностей.

Обработка ошибок

Улучшенный механизм обработки ошибок с более информативными сообщениями и API для тонкой настройки (onCaughtError, onUncaughtError, onRecoverableError).

Работа с ref

Компоненты-функции теперь могут принимать ref как свойство, упрощая код и устраняя необходимость в forwardRef.

Гидратация и совместимость

Улучшенная гидратация, корректно обрабатывающая элементы, добавленные расширениями браузера или сторонними скриптами.

Предварительная загрузка ресурсов

Оптимизация производительности с помощью API предварительной загрузки (preload, preinit).

import { preload, preinit } from 'react-dom';
preinit('script.js', { as: 'script' });
preload('font.woff', { as: 'font' });

Обновление до React 19

Подробная инструкция по обновлению доступна по адресу https://react.dev/blog/2024/12/05/react-19 . Обратите внимание на критические изменения, протестируйте совместимость вашего приложения и обновите зависимости, использующие React.

Установка:

npm install react@19 react-dom@19

Более подробная информация и примеры использования новых возможностей доступны в официальной документацииhttps://react.dev/blog/2024/12/05/react-19.

React 19 предлагает значительные улучшения для создания высокопроизводительных и надежных приложений. Начните использовать его сегодня!

Источник:

#JavaScript #React
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу