Комментарии 31
Такое ощущение, что Реакт стал наследником JQuery. Такая же популярность и такой же огород плагинов…
Вы, видимо, только издалека знакомы с реактом
Veikedo Вы, видимо, только издалека знакомы с JS
Почитайте что такое реакт
Шаблонные строки это не virtual dom
Не стоит бомбить.
Реакт это инструмент и инструмент хороший.
Вы, конечно, можете сделать всё вышеупомянутыми шаблонными строками.
Но реакт всё же предоставляет удобные способы компоновки/композиции компонент, удобные способы параметризации компонент, lifecycle-хуки в конце концов.
Не думаю, что было бы так просто и легко оперировать обычными (пусть и шаблонными) строками.
Ну а то, что описано в статье — костыли и велосипеды и, если бы было оформлено как just for fun — был бы успех.
Вы можете конечно использовать традиционные шаблоны, но как говорят, и на Си писать можно, но очень легко отстрелить себе ногу (поэтому и придумывают Rust...). С реактом то же самое — можно без него, но с ним сложнее наломать дров и сделать совсем уж тормознутый код. Как то так.
Вы, видимо, не только плохо знакомы с реактом, но и с веб-разработкой в целом.
На счет плагинов: Каждая задача требует индивидуальный поход и набор технологий. Не бывает так, что бы всё было из коробки и подходило ко всем задачам. И «плагины» — логическая необходимость. Или вы из тех людей, которые сплошь и рядом делают велосипеды?
ИМХО, плагин зайдет только тем, кто перешел с Ангуляра и хочет найти замену привычным ngRepeat и ngIf. Так-то и array.map()
в JSX нормально смотрится.
Кроме того, при использовании этого babel-плагина, возникнут проблемы с линтингом:
<For each="item" in={array}>
<div>{ item.value }</div> <!-- no-undef: item is not defined -->
</For>
В принципе можно сделать по аналогии с eslint-plugin-jsx-control-statements. Главное потом не забывать обновляться под новые реалии babel
-я, но это беда любых плагинов.
Возникает ситуация, когда в js-коде пишется html, в котором пишется js-код с html.
Но тогда html будет появляться в коде то тут, то там.
В корне не верно. jsx, это синтаксический сахар для написания js в декларативном стиле, выполненный в xml стиле.
Общего у «тегов» .jsx с .html лишь то, что они оба похожи на .xml
Более корректно сравнивать .jsx с typescript или coffeescript, то есть это очередной препроцессор.
На хабре спрашивать «чо такое реакт» вверх глупости, ровно как и плюсовать только риторические фразы.
Уже прочитав заголовок я подумал про jsx-control-statements
. Посмотрев содержимое всё ожидал увидеть сравнение. Не увидел. Вы рассматривали этот уже давно существующий плагин? Для него даже eslint-плагин есть.
Сегодня я узнал о jsx-control-statements
, день прошел не зря.
В оправдание автора могу заметить, что это решение по наивным запросам типа "forEach for React" или "If component for React" так просто не находится. Разве что нашел его упоминание где-то в issue к React
По правде говоря, синтаксис плагина мог быть и повкуснее. Скажем зачем слово condition
? 8 символов на пустом месте. Зачем "задепрекейтили" <Else/>
? В тернарном операторе оно есть. Даже в XSLT
оно есть. Почему <Choise/>
устроен именно так? Мне бы больше подошёл какой-нибудь <Switch/>
с возможностью единожды указать, что мы сверяем, дабы не плодить копипасту. И т.д…
Но даже такой плагин мне показался куда приятнее глазу, чем адская смесь декларативного HTML и императивного JS, с примесью функциональщины (все эти .map
-ы). Видимо годы XSLT меня избаловали.
Где это вы в XSLT слово тэг <else/>
видели?..
А <Choise/>
, видимо, прямо из XSLT в эту библиотеку и пришел
Где это вы в XSLT слово тэг <else/> видели?..
Он там называется иначе: <xsl:otherwise>
.
А <Choise/>
, видимо, прямо из XSLT в эту библиотеку и пришел
Да, вы правы. Похоже всё именно так. В нём <Choise/>
есть <Otherwise/>
. Тем более не понимаю, нафига <Else/>
отменили.
jsx-control-statements
показывает, что достаточно большое количество людей используют это решение. Это меня порадовало.
Добавляем в jsx циклы и условия