js стиль render для react.js
откровенно render() в стиле псевдо тегов меня раздражает. Хотя и понимаю что "блондинкам" проше его принять.
1) Атрибуты вовсе не атрибуты, но это думаю со временем всеже станет атрибутами также как к этому пришли с элементами svg. 2) Компиляция. решает очень маленькую задачу - только внешний вид. Имхо столь малое не повод коверкать спецификацию синтексиса js. 3) Ломает разметку. Пропушу проблему подсветки, но то как выглядит код если писать все атрибуты не в одну строку хочесться глаза вырвать. Чуть болеше чем подстановка переменных преврашается в кашу. Я предпочитаю js стиль кода в js. Поначалу React позволял писать обычным js не сильно сложнее чем тегами. Но когда компоненты стали классами, а не фабриками это стало невозможно. Для того чтоб и дальше писать js на js написал инструмен https://www.npmjs.com/package/jso-to-react . Элементы представлены как массив [свойства, child, child, ...] . Простая конструкция дает очень компактный результат шаблона, а также гибкость в его форматировании. В комбинации с https://www.npmjs.org/package/bem-name шаблон становиться еще проще, но это уже опционально. Исходники и документация с примером тут https://github.com/vflash/jso-to-react |
В чем проблема перейти на нормальную IDE?
Использую phpstorm. Там jsx поддерживается на ура |
мой редактор меня устраивает. параметр выбора редактора это не только посветка кода.
<cmps.PaymentPage tabs={this.props.tabs} step={this.props.step} productType={this.props.productType} boxOnBack={this.props.goBack} boxTitle={null} > ... </cmps.PaymentPage> [ { class: cmps.PaymentPage, tabs: this.props.tabs, step: this.props.step, productType: this.props.productType, boxOnBack: this.props.goBack, boxTitle: null, } , ... ] "на вкус и цвет" каждому свое но по мне js в js получается чише |
Ну вы же сказали, что не поддерживает редактор, и это как видимо - один из ваших доводов против jsx.
Поэтому я предложил довод в ответ :) Но в примере вы все же имхо, недоговариваете :) http://jamesknelson.com/learn-raw-re...x-es6-webpack/ Вот это ближе к правде React.createElement('li', {className: 'Contact'}, React.createElement('h2', {className: 'Contact-name'}, this.props.name) ) vs <li className="Contract"> <h2 className="Contract-name">{ this.props.name }</h2> </li> Цитата:
|
для IDE за $ 199.00 наверно позорно не прикрутить подсветку.
Про ломает разметку это я про то как выглядит код. Теги обычно не принято разбивать на несколько строк, и выглядит это не так эффектно как в одну строку. Найдите гденибуть хоть в одной документации чтобы использовали переносы строк. И когда в шаблоне чуть больше логике чем в примерах, то от разметки тега остаются рожки да ножки. Вот и получается что или живи с этой кашей или вычисления выносишь по максимум за пределы разметки. Но тогда теряем контекст. Цитата:
React.createElement('div', {}, никто так руками писать разметку не станет. для сравнения как это можно записать в "jso" ['+li.Contract' , ['+h2.Contract-name', this.props.name] ] |
Ваша позиция знакома и ясна.
Ок :) |
Часовой пояс GMT +3, время: 02:56. |