Я, наверное, давно должен был это узнать, но, увы, вот и мы. Оказывается, вы можете сказать, какую функцию вы хотите использовать в 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 примерами без реакции».