# 199: Возиться с JSX - CSS-хитрости

Anonim

Я, наверное, давно должен был это узнать, но, увы, вот и мы. Оказывается, вы можете сказать, какую функцию вы хотите использовать в JSX. Да, JSX действительно имеет только одно основное преобразование. Он превращает угловые скобки в JavaScript в вызов функции. Итак, если вы напишете такую ​​строку в JavaScript:

 Hello 

После обработки (возможно, с помощью Babel и плагина JSX) по умолчанию вы получите:

React.createElement("div", ( class: "big" ), "Hello");

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

/* @jsx myFunction */ Hello 

Превращается в:

/* @jsx myFunction */ myFunction("div", ( class: "big" ), "Hello");

Это означает, что мы можем написать нашу собственную функцию. Довольно странно, но нормально.

Фактический вариант использования - для библиотек, не относящихся к React, таких как Preact. Я узнал об этом, посмотрев на примеры Джейсона Миллера:

Vue тоже можно сделать таким же образом. Обратите внимание, что и Vue, и Preact поставляют эту специальную hфункцию, которая предназначена для этого:

Валерий Карпов также привел несколько интересных примеров использования в своем сообщении в блоге «Обзор JSX с 3 примерами без реакции».