JSX — это расширение для Javascript, позволяющее писать HTML-подобный код в Реакте. JSX является синтаксическим сахаром для React.createElement(), за счет чего код выглядит понятнее и проще.
Пример:
import React from 'react'; class Hello extends React.Component { render() { return ( <div className="hello"> <h1>Приветствуем Вас на нашем сайте!</h1> </div> ); } }
В итоге получается код, похожий на HTML, который пишется не в кавычках. Все HTML-теги реализованы в виде React-компонентов для удобства использования.
Примечание: не забывайте импортировать Реакт в файле, где используется JSX-код, так как при преобразовании Babel преобразует JSX в вызовы метода React.createElement().
У кода на JSX есть свои особенности. Если внутри компонента не предусматривается наличие других компонентов, то «закрывающий тег» не нужен.
Например, такой код на HTML
<div class="box"> <div class="box-header"></div> <div class="box-body"> Блок с данными </div> </div>
Будет выглядеть так на JSX:
<div className="box"> <div className="box-header" /> <div className="box-body"> Блок с данными </div> </div>
Атрибуты HTML-тегов также перенесены в Реакт, однако здесь есть ряд отличий: