Новый тип преобразования JSX для React
Примерно месяц назад вышел первый релиз кандидат React 17, в котором нет новых значимых фич. Но в новой версии появится поддержка нового типа преобразования JSX (JSX transform), благодаря которому больше не нужно постоянно импортировать React
. Луна Руан в блоге React написала про это статью — "Introducing the New JSX Transform".
Babel и TypeScript преобразуют JSX в вызовы функций React.createElement
, поэтому нужно импортировать React
в текущий скоуп. Это неинтутивно. Также использование React.createElement
влечёт за собой дополнительные накладные расходы. Для решения этих проблем был разработан новый тип преобразований JSX.
React 17 RC включает в себя две новые функции jsx
и jsxs
, которые должны использоваться только транспиляторами. Транспиляторы импортируют их в код компонентов автоматически при преобразовании JSX.
Поддержка нового преобразования уже есть в Babel 7.9 и TypeScript v4.1 beta. Для его включения в babel 7.9 нужно указать опцию {"runtime": "automatic"}
. В babel 8 он будет включаться по умолчанию.
Новый JSX transform будет бэкпортирован в React 16.x, React 15.x и React 0.14.x.
https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html