Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   React'а тред (https://javascript.ru/forum/offtopic/53890-react%27-tred.html)

Gozar 02.05.2015 15:33

Что-то вроде такого:

Верхний уровень
<div rt-if="1">
  <Repeat list={[1,2,3]} />
</div>


Repeat:
<div>
    <div rt-if="2">
      <RepeatChildren list={[1,2,3]} />
        
    </div>
</div>


RepeatChildren:
{this.props.children}

Gozar 02.05.2015 15:38

Не ну конечно можно тупо запихать всё в один шаблон и собрать из div-ов, но это уже ошибка проектирования.

Gozar 02.05.2015 15:47

Цитата:

Сообщение от UIjs
компонент состоит из шаблона

Компонент состоит из Компонентов или Шаблона + определение компонента и обработчики событий (+ работа с FLUX, если подобный имеется!)

nerv_ 02.05.2015 15:52

Цитата:

Сообщение от UIjs
не говоря уже о том что РАЗМЕТКА и ИНТЕРФЕЙСЫ это ДЕКЛАРАЦИЯ, а ЛОГИКА это ИМПЕРИКА. а в реакте все империка.

в ангуляре же все по полочкам там, где и должно быть

так и есть :)

Но, все-таки...
0. Я пишу на ангуляре 1.x.x чуть более 2 лет
1. Я читал+смотрел_видео про web-components от гугла, щупал их.
2. Читал+смотрел_видео про Polymer.
3. Читал+смотрел_видео про Angular 2.0.
4. Читал+смотрел_видео про React, щупал его.
Мое мнение: на текущий момент реакт - самая быстрая вьюха (до выхода Angular 2.0). Он не форсит структуру приложения. Но, голый реакт как вьюха сам по себе - это боль без react-templates (как минимум) или jade-react (как максимум).

UIjs, когда ты пересядешь на es6, поймешь, что:
1. DI агуляра вызывает слезы, т.к. есть нативные es6 модули
2. выбросишь свою Class функцию просто потому, что она не нужна
---
3. вероятно, тебе надоест юзать jQuery/Angular утилиты, т.к. целесообразней использовать свои, ибо они ведут себя так, как нужно тебе
4. тоже касается транспорта (ajax, sockets)
5. ангуляр заставляет писать обертки вокруг своих сервисов ($http, etc) вместо простого использования ранее написанных тобой классов
---
проще иметь отдельную абстракцию в виде вьюхи, т.к., в идеале, ее можно заменить на другую не переписывая все приложение

nerv_ 02.05.2015 15:54

Цитата:

Сообщение от Gozar
Что-то вроде такого:

не вижу, чем ифы заменил)))

UIjs 02.05.2015 15:55

Цитата:

Сообщение от nerv_
2. выбросишь свою Class функцию просто потому, что она не нужна

у меня есть приватные, в классах нет, у меня можно обьявлять в любом порядке классы, у них нет, у меня синтаксис говно, у них красивый.

Цитата:

Сообщение от nerv_
5. ангуляр заставляет писать обертки вокруг своих сервисов ($http, etc) вместо простого использования ранее написанных тобой классов

не заставляет, он заставляет это делать если ты потом будешь по правильному тестировать приложение и за место подключаемых сервисов сможешь передать заглушку на время теста, это единственная причина почему нужно запрашивать даже такие очевидные штуки как $window не напрямую

Gozar 02.05.2015 15:57

Цитата:

Сообщение от nerv_
иметь отдельную абстракцию в виде вьюхи, т.к., в идеале, ее можно заменить на другую не переписывая все приложение

Сильный аргумент, если это будет, если не будет, то это попытка сделать идеальное приложение.

Цитата:

Сообщение от nerv_
голый реакт как вьюха сам по себе - это боль без react-templates (как минимум) или jade-react (как максимум).

Возможно дело привычки, но я за 3 дня осилил, за 1 неделю перестало болеть, теперь получаю удовольствие. У тебя web-components вызывает боль?

Gozar 02.05.2015 15:58

Цитата:

Сообщение от nerv_
не вижу, чем ифы заменил

Эм, я не понял логику. Это if? и что это значит? if 2==2 ?

UIjs 02.05.2015 15:58

Цитата:

Сообщение от nerv_
проще иметь отдельную абстракцию в виде вьюхи, т.к.,

ни что не мешает биндить к контроллерам UIjs любые вьюхи, хоть THREEjs


scope.watchProp(context, 'prop', handler) работает вообще мгновенно так как построин на сеттерах и обсерверах/

п.с. о, я тут придумал по умолчанию все контроллеры наследователь не только от ивент эмиттера а от контролера Controller и задать ему метод watch('prop', handler) ну или типа того

Gozar 02.05.2015 15:59

Цитата:

Сообщение от Gozar
{ if 2 ==2 ? <Repeat list={[1,2,3]} /> : '' }

:)


Часовой пояс GMT +3, время: 05:30.