Думаете о том, чтобы попробовать программировать с помощью React? Вот ключевые новые функции, которые стоит попробовать в React 18.
React — очень популярная библиотека JavaScript с открытым исходным кодом, созданная Facebook в 2013 году. Благодаря его гибкости многие разработчики используют некоторые из его функций для создания быстрых, эффективных и многоразовых компонентов пользовательского интерфейса (UI).
В марте 2022 года команда выпустила самую последнюю и ожидаемую версию библиотеки React, React 18, которая включает новые функции, направленные на повышение производительности приложений.
Новые возможности в React 18
React 18 состоит из нескольких полезных новых функций, добавленных в библиотека JavaScript с открытым исходным кодом. Многих из этих изменений не было в предыдущей версии, в то время как другие функции были улучшены. Некоторые из этих функций включают в себя; новый корневой API, автоматическая пакетная обработка, Transition API, Suspense API и выпуск новых хуков.
Новый корневой API
Корневой API в React отслеживает, как компонент верхнего уровня отображается в дереве. В предыдущих версиях React оказывать метод использовался для выполнения рендеринга, который теперь называется устаревшим корневым API.
Однако React 18 поставляется с новым корневым API, который создает корень, используя createRoot метод, а затем визуализирует компонент React в созданный корень, используя метод оказывать метод.
Этот новый корневой API предоставит вам доступ к функциям этой последней версии, таким как функция API перехода, обсуждаемая позже. Хотя старый способ все еще будет работать в React 18, в будущем от него могут отказаться.
Фрагмент ниже показывает, как корневой API структурирован как в устаревшем, так и в новом виде.
Устаревший корневой API
Импортировать РеактДОМ от'реагировать-дом';
Импортировать Приложение от'./Приложение';ReactDOM.render(<Приложение />, документ.getElementById('приложение'))
Новый корневой API
Импортировать РеактДОМ от'реакция-дом/клиент';
Импортировать Приложение от'./Приложение';
константа корень = ReactDOM.createRoot(документ.getElementById('приложение'));
корень.рендер(<Приложение />)
Автоматическое дозирование
Пакетная обработка в React включает несколько обновлений состояния в одном повторном рендеринге для каждого события браузера, например событие щелчка. Любые изменения состояния, произошедшие вне события, такие как промис или обратный вызов, не будут пакетироваться.
В React 18 обновления состояния пакетной обработки выполняются автоматически независимо от того, где происходят эти обновления. Эта функция обеспечивает прямое улучшение производительности и времени рендеринга. Однако, если у вас есть состояние компонента, которое вы не хотите пакетировать, вы можете отказаться от него с помощью флешсинк метод. Ниже приведен пример фрагмента того, как это можно сделать;
Импортировать { флешсинк } от'реагировать-дом';
функцияручкаклик() {флешсинк(() => {
установитьКоличество(считать => количество + 1);
]});
флешсинк(() => {
сетсторе(магазин => !магазин);
});
}
API перехода
В React обновления, сделанные в пользовательском интерфейсе, могут быть классифицированы как срочные, а промежуточные обновления также называются несрочными. Примером срочного обновления может быть случай ввода текста в поле, а обновлением перехода может быть функция фильтрации поиска.
Теперь, если такие обновления происходят одновременно, это можно назвать тяжелой операцией и может привести к зависанию вашего приложения. Чтобы решить эту проблему, здесь переходный API вызывает startTransition приходит играть. Эта новая функция сообщает React, какие обновления следует помечать как «переходы», что, в свою очередь, улучшает взаимодействие с пользователем. Вот пример кода того, как это работает;
Импортировать { начало перехода } от"реагировать";
начальный переход(() => {
setSearch (ввод);
});
саспенс
Когда приложение обрабатывается на сервере, в браузер возвращается статический HTML-файл, позволяющий пользователю увидеть, как выглядит приложение во время загрузки JavaScript. Когда файл загружается, HTML становится динамическим с тем, что известно как увлажнение. Недостаток здесь в том, что если всего этого нет, ваше приложение не станет интерактивным.
Чтобы решить эту проблему, React 18 предоставляет две новые функции рендеринга на стороне сервера (SSR), использующие саспенс компонент;
- Потоковая передача HTML позволяет отправлять части компонента по мере их рендеринга.
- Выборочная гидратация отдает приоритет интерактивности компонентов, выбранных пользователем.
Новые крючки
Одним из больших поворотных моментов для React стало введение хуки в React версия 16, которая позволяет функциональным компонентам получать доступ к состояниям и другим функциям React без написания классов. React 18 поставляется с пятью новыми хуками для улучшения опыта разработчиков;
- useId: Этот хук позволяет нам создать уникальный идентификатор (ID) в нашем приложении как на сервере, так и на клиенте.
- useTransition: используется вместе с startTransition для создания нового обновления состояния, которое можно назвать несрочным.
- useDefferedValue: позволяет откладывать менее срочные обновления.
- useSyncExternalStore: этот хук полезен при реализации подписок на внешние источники данных.
- useInsertionEffect: этот хук ограничен авторами библиотек CSS-in-JS для внедрения стилей в DOM.
Как обновить до React 18
Чтобы выполнить обновление, можно использовать менеджер пакетов npm или yarn, выполнив следующую команду в терминале.
нпм установить реагировать
или
пряжа добавить
Затем вам нужно будет внести изменения в index.js файл в корневом каталоге папки проекта из устаревшего API в новый корневой API, как показано ранее.
Как настроить новый проект React 18
Чтобы настроить новый проект React 18, пакет create-react-app устанавливается с помощью npm или yarn в терминале;
npx создавать-реагировать-приложение мое-реагировать-приложение
или
пряжа добавить создавать-реагировать-приложение мое-реагировать-приложение
Улучшите производительность вашего приложения с помощью React 18
Теперь вы знаете о некоторых новых функциях React 18, таких как новый корневой API, приостановка, переход или автоматическая пакетная обработка, а также о том, как перейти на эту новую версию и настроить ее с нуля.
Эти недавние изменения в React готовы к тому, чтобы вы испытали их прямо сейчас.