Comments 11
Отказался от JSX везде кроме view. И там тоже подумываю отказаться. Это hollywar, конечно, но нативный React ( в плане рендеринга ) мне пришелся больше по вкусу и удобству
Всмысле отказался от JSX везде кроме view? А где еще JSX используется?
Вот это
React.createElement(
MyButton,
{color: 'blue', shadowSize: 2},
'Click Me'
)
Удобнее вот этого?
<MyButton color="blue" shadowSize={2}>
Click Me
</MyButton>
у меня довольно часто элементы генирируются, и я не знаю их названий. Соответственно вместо названия элемента я подставляю переменные. JSX такой возможности не дает
Свойства так же формируются динамически довольно часто и их гораздо удобнее формировать как объект.
Ну и да. Нотация функции лично мне удобнее и читается она довольно просто. Дело привычки и аккуратности кода. Опять же повторюсь — это субъективно. Лючно мое мнение
А где, кроме view, используется jsx?
Да и jsx это синтаксический сахар для работы с dom, почему он не нативный?
При построении каскадов элементов упрпвляющей логики. Кроме ToDo list бывают же еще приложения иони, как правило, сложнее, имеют вложенную иерархичную структуру где view элементы находятся в самом верху.
JSX это, как вы правильно заметили, синтакситечкий сахар, который треюует предобработкм, для трансляции в нативное для React представлерие, коим занимается babel.
Например:
дали дизайн -> сверстали -> отдали разрабам, они разбили на компоненты и натянули клиентскую логику -> и тут внезапно надо один компонент подправить в плане вёрстки после небольшого редизайна, а другой абсолютно новый компонент вставить… как быть?
И ещё вопрос, насколько сложно вернуться через пол года к jsx-коду и проследить всю иерархию компонентов, чтобы что-то переверстать…
Проблема в том, что в данном случае верстальщики уже начинают пользоваться только css. Хотя ориентироваться в таком коде верстальщику не трудно, ибо единственное что ему понятно — JSX, остальное он обычно не понимает, да ему и не надо.
Для просмотра иерархии… Вообще я обычно использую специальное дополнение для хрома, которое показывает эту иерархию в смешанном виде (JSX/DOM). Вообще это достаточно удобная вещь. А вот чисто из кода эту иерархию искать трудно, ибо каждый элемент вообще не зависит от своего отца.
JSX — подробности