Обложка канала

Заметки про React

Короткие и полезные заметки про React

Заметки про React

3 года назад
Открыть в
Истоки JSX и почему он существует JSX  – это JavaScript с синтаксическими приемами, облегчающими представление HTML. Это похоже на Sass, который транспилируется в CSS. Чтобы написать простой HTML код с помощью JS, потребуется много кода. Чтобы упростить написание HTML кода на JavaScript, появилась библиотека HyperScript:
const h = require("hyperscript");
document.body.appendChild(
 h("div", { id: "content" },
  h("div", { id: "child" },
   h("p", null, "text")
  )
 )
);
Но такой код сложно читать и понимать. Для решения данной проблемы появился JSX. Он позволяет писать код похожий на HTML и транспилируется в JS. Например:
const el = (
 <div id="content">
  <div id="child">
   <p>text</p>
  </div>
 </div>
);

// Транспилируется в следующий код:

const el = (React.createElement("div", { id: "content" },
 React.createElement("div", { id: "child" },
  React.createElement("p", null, "text"))));
Код похож на HyperScript, вместо h используется React.createElement. В TypeScript это можно изменить. Есть параметр jsxFactory, с помощью которого можно изменить JS функцию создания элемента. Например, можно использовать h из preact вместо React.createElement по умолчанию. dodov.dev/blog/or…t-exists
Origins of JSX and Why It Exists

As if plain JavaScript wasn't complex enough already…

Hristiyan Dodov