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

melky 22.02.2015 22:46

React'а тред
 
Думаю, можно создать отдельный тред для вопросов\трепни для этого чуда.

Мой первый вопрос - это "Как передавать состояние (или просто данные) компонентам React при серверной отрисовке?"

У меня на сайте 2 запроса делается постоянно - это список страниц (меню) и настройки сайта

пока решил сделать так, на примере страниц (это маршрут express):
var detectNotFound = function (state) {
  var is404 = function (route) { return route.name == '404'; };
  var isNotFound = state.routes.filter(is404).length > 0;
  return isNotFound;
};

var getMarkup = function (req, data) {
    return new Promise(function (res, rej) {

      var location = req.url;
      Router.run(routes, location, function (Handler, state) {
        var isNotFound = detectNotFound(state);
        if (isNotFound) {
          rej();
        } else {
          var handler = React.createElement(Handler, {flux: flux, data: data});
          var markup = React.renderToString(handler);
          res(markup);
        }
      });

    });
};

module.exports = function reactRoute_middleware (req, res, next) {

  Promise

  // Initial data
  .resolve({})

  .then(function (data) {

    Page.findAll().then(function (pages) {

      data.pages = _.map(pages, function (page) {
        return { title: page.title, slug: page.slug };
      });

      return Promise.resolve(data);

    })

    .then(function (data) {
      getMarkup(req, data).then(function (markup) {
          res.render('index', { title: 'Сайтуха', content: markup, data: data });
      }, next);
    })

    .catch(next);

  });
};

ну и в шаблоне это дело вывожу:
Код:

extends layout

block content
  div#content!= content

block scripts

  - var strdata = JSON.stringify(data)
  script window.initialData = !{strdata};

ну а дальше подхватываю window.initialData в компоненты\Flux

хотелось бы сделать это без глобальной переменной

nerv_ 23.02.2015 00:03

Цитата:

Сообщение от melky
React'а тред

Меня уже не первый раз посещает мысль по веб-паку создать :)

Цитата:

Сообщение от melky
хотелось бы сделать это без глобальной переменной

запихни в какой-нибудь глобальный объект:
React.__initial = {};

Safort 23.02.2015 09:07

melky,
продолжая этот пост http://javascript.ru/forum/357828-post843.html
Это понятно, но, получается, мне так и придётся передавать дополнительный аргумент-счётчик? Кстати, зачем ему нужен key если без него он и так нормально работал(хоть и выводил преды)?

melky 23.02.2015 11:40

Цитата:

Сообщение от Safort (Сообщение 357893)
melky,
продолжая этот пост http://javascript.ru/forum/357828-post843.html
Это понятно, но, получается, мне так и придётся передавать дополнительный аргумент-счётчик? Кстати, зачем ему нужен key если без него он и так нормально работал(хоть и выводил преды)?

угумс, для использования номера лучше передать его как отдельный prop

key нужен для оптимизации скорости отрисовки списков (без них он бы все удалил из dom и записал заново)

Safort 23.02.2015 13:06

melky,
спасибище за ответы)

Safort 26.02.2015 00:26

React v0.13 RC

melky 26.02.2015 11:21

Цитата:

Сообщение от Safort (Сообщение 358485)

:lol: наверное, я пессимист)
Цитата:

Мы уже немного говорили о грядущих изменениях. Основное — это конечно же отбрасывание существующего кода вашего проекта как легаси. Подробнее в нашем анонсе беты. Мы очень взволнованы этим событием! Себастьян также написал сегодня утром о некоторых изменениях с API React. Мы надеемся, что изменения, над которыми мы работали, улучшат производительность и ощущения от переписывания ОДНОГО И ТОГОЖЕ САЙТА ЦУКО СТРАДАЙ ОТ СВОЕГО BLEEDING EDGE НУБАС.

Gozar 26.02.2015 11:57

melky,
Зачем ты переписываешь один и тот же проект? Пиши себе на v0.12.2 и дальше. Когда начнешь новый проект используй v0.13.1 т.к. они уже к тому времени пофиксят самые страшные баги, из-за которых ты бы парился долго.

У меня года три было две версии админки, одна устаревшая, другая супер современная. Немного парило, но вполне терпимо.

nerv_ 26.02.2015 12:01

Цитата:

Сообщение от Safort
React v0.13 RC

semver на них не хватает :)

kobezzza 27.02.2015 09:06

Хочу вступить в ваши ряды :) С самим реактом разобрался вроде как, но подскажите, какие полезные аддоны стоит глянуть.

Safort 27.02.2015 11:16

Цитата:

Сообщение от nerv_ (Сообщение 358539)
semver на них не хватает :)

А у них разве не семвер?

Safort 27.02.2015 11:17

Цитата:

Сообщение от kobezzza (Сообщение 358682)
Хочу вступить в ваши ряды :) С самим реактом разобрался вроде как, но подскажите, какие полезные аддоны стоит глянуть.

Хмм, я пока без аддонов пишу.

kobezzza 27.02.2015 11:18

Цитата:

Сообщение от nerv_ (Сообщение 358539)
semver на них не хватает :)

Пока первая цифра 0, то согласно semver вторая цифра может вносить изменения без обратной совместимости.

kobezzza 27.02.2015 11:18

Цитата:

Сообщение от Safort (Сообщение 358744)
Хмм, я пока без аддонов пишу.

Не хочется велосипедить :)

Safort 27.02.2015 11:24

Цитата:

Сообщение от kobezzza (Сообщение 358745)
Пока первая цифра 0, то согласно semver вторая цифра может вносить изменения без обратной совместимости.

Так можно мажорную постоянно в нуле держать и ломать API когда угодно. Годнота, неправда ли? :D

kobezzza 27.02.2015 11:28

Цитата:

Сообщение от Safort (Сообщение 358751)
Так можно мажорную постоянно в нуле держать и ломать API когда угодно. Годнота, неправда ли? :D

Ребята из Stylus так и делают :D

https://github.com/LearnBoost/stylus...r/package.json

0.50.0 версия :)

***

Но в NPM это предусмотренно, т.е.

^0.1 - будет обновлять только патчи, а уже 0.2 не подтянется

^1.1 - будет обновлять патчи и релизы второй цифры.

Gozar 27.02.2015 19:06

Цитата:

Сообщение от kobezzza
какие полезные аддоны стоит глянуть

https://github.com/STRML/react-router-component
https://github.com/rackt/react-router

а также почитать про mixins.

melky 27.02.2015 19:28

Цитата:

Сообщение от kobezzza (Сообщение 358682)
Хочу вступить в ваши ряды :) С самим реактом разобрался вроде как, но подскажите, какие полезные аддоны стоит глянуть.

https://github.com/enaqx/awesome-react
мне помогло когда-то)

Safort 28.02.2015 00:04

Ещё статейка по Реакту https://zapier.com/engineering/react...guide-gotchas/

l-liava-l 28.02.2015 03:24

Вот никак не понимаю чем вам так нравиться react.js? :)

jsx шаблоны кажуться сущим адом, та же фигня что можно делать и в jq, но с биндингами. А вот riot.js уже поприятнее.

Но всеравно это лишь шаблонизатор, добавим к этому архитектурный паттерн (нативный flux например) + AMD для модулей и вырисовывается нечто чем-то напоминающее ангуляр. (не сам двиг, а решаемые задачи)

А почему бы не использовать его для своих проектов непонятно... отлично масштабируется, а большая доля ui кейсов делается легким движением пальцев.

Даешь холливар? :)

kobezzza 28.02.2015 11:05

Цитата:

jsx шаблоны кажуться сущим адом
Я прикрутил Snakeskin и мне норм :)

Цитата:

Но всеравно это лишь шаблонизатор
Это не шаблонизатор, а просто движок биндинга (очень шустрый), и этим мне это и нравится, что они не навязывают свою архитектуру.

l-liava-l 28.02.2015 11:26

Цитата:

Я прикрутил Snakeskin и мне норм
Имеешь ввиду что при сборке твои Snakeskin шаблоны превращаются в jsx? или нет?

Цитата:

Это не шаблонизатор, а просто движок биндинга (очень шустрый), и этим мне это и нравится, что они не навязывают свою архитектуру.
Как это не шаблонизатор если мы динамично генерим html?

Gozar 28.02.2015 11:48

Цитата:

Сообщение от Safort
Ещё

vk.com/reactjs

kobezzza 28.02.2015 11:51

Цитата:

Имеешь ввиду что при сборке твои Snakeskin шаблоны превращаются в jsx? или нет?
Угу, я сейчас играюсь с этим, чтобы разработать наиболее удобный подход и реализовать его в SS 7.

Цитата:

Как это не шаблонизатор если мы динамично генерим html?
Ну, я имел ввиду, что классических средств шаблонизации там почти нет (впрочем как и в Angular). Т.е., например, SS, Jade - это шаблонизаторы, а React, Angular - это биндинг движки с элементами шаблонов :)

Gozar 28.02.2015 11:55

Цитата:

Сообщение от l-liava-l
Но всеравно это лишь шаблонизатор

Задрали уже компоненты шаблонизатором называть. По сути реакт - классы с однонаправленным потоком.

Цитата:

Сообщение от l-liava-l
напоминающее ангуляр.

Ну дык разгони его до скорости реакта.

Цитата:

Сообщение от l-liava-l
не сам двиг, а решаемые задачи

Все задачи похожи и решаются тоже похожими способами потому, что они похожи!

melky 28.02.2015 12:19

Цитата:

Сообщение от l-liava-l
jsx шаблоны кажуться сущим адом, та же фигня что можно делать и в jq, но с биндингами. А вот riot.js уже поприятнее.

в nodejs ты свою верстку на жуквери не отрисуешь (да и ангуляра тоже)
имеется в виду - без тулз типа jsdom и prerender

Цитата:

Сообщение от l-liava-l
Но всеравно это лишь шаблонизатор, добавим к этому архитектурный паттерн (нативный flux например) + AMD для модулей и вырисовывается нечто чем-то напоминающее ангуляр. (не сам двиг, а решаемые задачи)

unix way - Пишите программы, которые делают что-то одно и делают это хорошо.
пасаны, которые написали это, построили огромнейшую систему - ну вы в курсе
кстати, сами компоненты реакта - хороший пример реализации модуля(частицы функционала, грубо говоря) из largescalejs от Османи

Цитата:

Сообщение от l-liava-l
А почему бы не использовать его для своих проектов непонятно... отлично масштабируется, а большая доля ui кейсов делается легким движением пальцев.

SEO и тормознутость. эти же проблемы у Polymer ... насчет riot - хз, не юзал

а так - отлично всё. мне он нравится тем, что большинство работы делается автоматически

ангуляр с виджетами типа kendo или бутстрапа (ngStrap) - идеальный тулкит для админок :Р

правда, встроенные велосипеды типа модулей (DI) и промисов меня вгоняют в грусть... почему я должен, без права выбора, использовать AMD (я хочу ES6 modules) и недообещания (я хочу полный фич bluebird)?
Цитата:

Сообщение от l-liava-l
Как это не шаблонизатор если мы динамично генерим html?

тогда и жуквери и ангуляры - это шаблонизаторы, потому что динамично генерят хтмл)

Цитата:

Сообщение от l-liava-l
Даешь холливар?

советую ознакомиться с темой прежде чем пытаться травить ;)

Цитата:

Сообщение от kobezzza
React, Angular - это биндинг движки с элементами шаблонов

компонент - это не биндинг с шаблоном, это модуль

Цитата:

Сообщение от l-liava-l
не сам двиг, а решаемые задачи

ну нифига себе ты зарядил
в реакте царит композиция (компонентов) и чистые функции, иммутабельность и реактивность
в ангуляре - mvc и мутабельность(модели), функции со сторонними эффектами (в контроллерах)

в mvc царит мутабельность и связи (двунаправленные), изоляция
во flux - реактивность, иммутабельность и глобализация

angular, react \ mvc, flux - это совсем разные вещи. их нельзя сравнивать "лучше\хуже".



l-liava-l, у тебя сегодня ДР ? с днём рождения)

kobezzza 28.02.2015 13:17

Цитата:

компонент - это не биндинг с шаблоном, это модуль
Это всё понятно. Я же бывший Яндексоид, поэтому я всегда мыслю в категориях: модуль, класс, компонент. Мне React понравился сразу именно своей простотой и гибкостью, но его "шаблоны" - это шаг назад, поэтому я сразу же выкинул их :)

Что я имею ввиду, разложу по полочкам:

1) В терминах БЭМ каждый компонент можно описать как папочку:

b-button
  .. b-button.js (бизнес логика)
  .. b-button.styl (я использую Stylus)
  .. b-button.ss (я использую SS)
  .. b-button.json (тут описано от кого наследуется наш компонент и от кого зависит, чтобы не описывать это отдельно в каждом файле)


Поэтому первая задача SS в JSX - это вынесение шаблона в отдельный файл/ы.

2) Думаю многие из вас юзают АНБ при именование классов в CSS и используют Stylus для удобной работы с ним:

.b-input {
  &_style_warning {
    ...
  }

  &__wraper {
    ...
  }

  &__input {
    ...

    &_focused_true {
       ...
    }
  }
}

.b-select {
  @extend .b-input;
  ...
}


И SS полностью переносит концепцию Stylus в шаблоны:

- template bInput(@params)
   < .b-input[.&_style_warning]
     < .&__wrapper
       < .&__input[.&_focused_true]

- template bSelect(params) extends bInput
   ...


3) В SS встроены средства локализации на уровне синтаксиса, т.е. чтобы локализовать строку, то её достаточно взять в апострофы

- template foo()
  < h1.warning
     `Привет мир!`


4) Частый кейз, когда нам нужно определить ряд методов для шаблона, например, для генерации иконок (например, Font-Awesome)

- proto base->icon(name, opt_title)
  < i.fa.&-${name} title = ${opt_title}

- placeholder base()


И потом просто наследуемся от базового класса и юзаем эти методы.

5) Опциональный Jade-like синтаксис (синтаксис хоть и похож местами на Jade, но в целом другой, просто я хз как было его назвать)

Тупо меньше пишем :)


***

Теперь пример с React: реализуем 3 компонента:

1) i-base -- базовый компонент, где определяем общие методы и т.д.

i-base
  .. i-base.js
  .. i-base.styl
  .. i-base.ss
  .. i-base.json


class iBase extends React.Component {
  someMethod() {
    ...
  }
}


.i-base {
   ...
}


- template iBase.prototype.render()
  - proto icon(name, title)
    ...

  - proto logo(style)
   ...


2) b-input -- поле ввода

b-input
  .. b-input.js
  .. b-input.styl
  .. b-input.ss
  .. b-input.json


class bInput extends iBase {
   ...
}


.b-input {
   @extend .i-base
}


- template bInput.prototype.render() extends iBase.prototype.render


3) b-select - выпадающий список, естественный наследник b-input

Тут логика ясна.


***

Ну и напоследок пример компонента, который вызывает другие компоненты

b-upload

- template bUpload.prototype.render() extends iBase.prototype.render
  - block root
    < b-input value = { this.state.value }
    < b-button value = Отправить!


***

По сути я просто взял БЭМ (кто не в курсе, то читать немедленно) и натянул на реакт, и полученная архитектура очень удобна и управляема.

Сейчас я работаю над максимально бесшовной интеграцией SS с React, чтобы использование было очевидно и чисто.

Erolast 28.02.2015 16:10

Цитата:

JSX is optional and not required to use React. Try clicking on "Compiled JS" to see the raw JavaScript code produced by the JSX compiler.
http://facebook.github.io/react/#examples
Не хочется HTML - ноль проблем.

melky 28.02.2015 16:34

kobezzza, а не потеряем ли мы VDOM (и серверную отрисовку) при использовании SS ?

Цитата:

Сообщение от kobezzza
1) В терминах БЭМ каждый компонент можно описать как папочку:

webpack дал возможность создавать таки папочки :)
папочки даже с картинками, если нужно (я так не делаю)

Цитата:

Сообщение от kobezzza
2) Думаю многие из вас юзают АНБ при именование классов в CSS и используют Stylus для удобной работы с ним:

палец вверх. это круто :)

Цитата:

Сообщение от kobezzza
3) В SS встроены средства локализации на уровне синтаксиса, т.е. чтобы локализовать строку, то её достаточно взять в апострофы

имхо, это лишнее - взял и включил движок локализации в шаблонизатор

или это просто сахар над библиотечным вызовом? если так, то опять таки, палец вверх :)

Цитата:

Сообщение от kobezzza
4) Частый кейз, когда нам нужно определить ряд методов для шаблона, например, для генерации иконок (например, Font-Awesome)

для этого есть кастомные методы с префиксом "render%Something%"
пример: http://jsbin.com/rejicofuvu/1/edit?js

хотя, я был бы не против засахарить это :
const linksToPages = this.props.pages.map(this.renderPageLink)


.. в методе шаблона
Цитата:

Сообщение от kobezzza
5) Опциональный Jade-like синтаксис (синтаксис хоть и похож местами на Jade, но в целом другой, просто я хз как было его назвать)

нечего сказать, это классно :) я устал от этих <ДИВЧИК></ДИВЧИК> (знаки "<", ">", "/" находятся справа снизу... чертов левша, да :) )

Цитата:

Сообщение от kobezzza
1) i-base -- базовый компонент, где определяем общие методы и т.д.

сейчас для этого есть mixin'ы

наследование классов ... вроде с 0.13 версией добавили фишки для ES6 классов (+наследования?), так что должно получиться круто

я не вникал в 0.13 и новые классы ES6 , так что промолчу. но чувствуется, что это тоже круто)

Цитата:

Сообщение от kobezzza
2) b-input -- поле ввода

Цитата:

Сообщение от kobezzza
3) b-select - выпадающий список, естественный наследник b-input

наследование шаблонов. ня
не знаю, правда, кейса для этого (реального кейса, а не вымышленные наследования Animal и Cat)

Цитата:

Сообщение от kobezzza
По сути я просто взял БЭМ (кто не в курсе, то читать немедленно) и натянул на реакт, и полученная архитектура очень удобна и управляема.

угумс. я использую в работе БЭМ, но не как методологию, а как идею:

http://jsbin.com/zehurojinu/1/edit?js

обрати внимание на классы - это просто пздц.

Цитата:

Сообщение от kobezzza
Сейчас я работаю над максимально бесшовной интеграцией SS с React, чтобы использование было очевидно и чисто.

удачи в этом нелегком деле :) сторонние шаблоны для реакта - этого не хватает (по крайней мере, мне)

Цитата:

Сообщение от Erolast
Не хочется HTML - ноль проблем.

да ну нафиг. обменял jsx на уродливые вызовы div(fuck, this, i, hate, that!)

kobezzza 28.02.2015 17:04

Цитата:

kobezzza, а не потеряем ли мы VDOM (и серверную отрисовку) при использовании SS ?
Конечно нет, результатом работы SS будет "шаблон" React, т.е. с точки зрения React он ничего не заметит.

Цитата:

или это просто сахар над библиотечным вызовом?
Да это сахар, SS может либо заменить строку по заданному хешу, либо обернуть вызовом указанной функции (которую можно задать вручную), а также может вернуть объект всех найденных строк локализации.

Цитата:

для этого есть кастомные методы с префиксом "render%Something%"
Дык, эти методы SS тоже наследуются, их можно переопределять и доопределять в дочерних шаблонах и т.д., т.е. такая схема более гибкая.

Цитата:

наследование шаблонов. ня
не знаю, правда, кейса для этого (реального кейса, а не вымышленные наследования Animal и Cat)
Это мега круто, ты просто не проникся, я же привёл реальный пример:

Базовый шаблон->Input->Select->MultiSelect и т.д.

Цитата:

удачи в этом нелегком деле сторонние шаблоны для реакта - этого не хватает (по крайней мере, мне)
Да там делов не так много, сам SS то написан уже, просто ща времени нет, но через 2 недели сажусь плотно.

Erolast 28.02.2015 17:47

Цитата:

я устал от этих <ДИВЧИК></ДИВЧИК> (знаки "<", ">", "/" находятся справа снизу... чертов левша, да )
http://emmet.io/
Цитата:

Конечно нет, результатом работы SS будет "шаблон" React, т.е. с точки зрения React он ничего не заметит.
А зачем переводить через JSX, когда можно сразу в API?
http://facebook.github.io/react/docs...ct-without-jsx

kobezzza 28.02.2015 17:49

Цитата:

А зачем переводить через JSX, когда можно сразу в API?
http://facebook.github.io/react/docs...ct-without-jsx
Проще реализовать (точнее ничего не надо реализовывать), а по скольку у нас Unix Way, то тем более.

melky 28.02.2015 17:51

Цитата:

Сообщение от Erolast

точняк

был период времени, когда он не работал для jsx, поэтому я его откинул. (sublime text)

ща вроде пашет

Цитата:

Сообщение от kobezzza (Сообщение 359041)
Проще реализовать (точнее ничего не надо реализовывать), а по скольку у нас Unix Way, то тем более.

я не понял, что будет на выходе. JSX или вызовы React.DOM.div?

kobezzza 28.02.2015 17:52

Цитата:

я не понял, что будет на выходе. JSX или вызовы React.DOM.div?
JSX, на который можно будет натравить компилятор React или юзать так.

melky 28.02.2015 17:53

Цитата:

Сообщение от kobezzza (Сообщение 359043)
JSX, на который можно будет натравить компилятор React или юзать так.

есть запускаемый пример? очень любопытно

kobezzza 28.02.2015 17:55

Цитата:

Сообщение от melky (Сообщение 359044)
есть запускаемый пример? очень любопытно

Тока на компе, я же прототипирую, фича выйдет вместе с SS 7, скорее всего через месяц.

l-liava-l 28.02.2015 19:53

По поводу терминологии:

Цитата:

Задрали уже компоненты шаблонизатором называть. По сути реакт - классы с однонаправленным потоком.
Смотри не взлети ;)

Википедия:
Цитата:

Шаблонизатор (в web) — это программное обеспечение, позволяющее использовать html-шаблоны для генерации конечных html-страниц.
Реакт предназначен именно для этого, а его возможности, недостатки и архитектура не имеют значения в данном случае.


Цитата:

Тогда и жуквери и ангуляры - это шаблонизаторы, потому что динамично генерят хтмл)
Ну не совсем, жуквери это либа которая могет простейшую шаблонизацию делать (вот этот ад $('</div>').append(...).) Ангуляр это целая система в которой тож есть свой шаблонизатор.
А реакт это не система, а отдельный модуль шаблонизации жэ.

Цитата:

Ну, я имел ввиду, что классических средств шаблонизации там почти нет (впрочем как и в Angular). Т.е., например, SS, Jade - это шаблонизаторы, а React, Angular - это биндинг движки с элементами шаблонов
Просто SS, jade - на этапе сборки а react.js riot.js - в процессе выполнения. Естественно их функционал отличается. Но то что они превращают наши шаблоны в валидный html - факт.

Цитата:

Ну дык разгони его до скорости реакта.
Зачем? Если вдруг появится кейс где биндинги ангуляра не будут справляться то я запилю тот же реакт в директиву.. или riot ибо привык к деларативностям. Но не путай теплое с мягким. Вопрос был не в том какой шаблонизатор быстрее, а почему многие ругают ангуляр за его "тормознутость" и усложняют себе жизнь делая собсвтенную сборку целой ситсемы там, где это неуместно и противоречит бизнес задачам. Ведь можно подключить уже готовое и сэкономить ресурсы.

Ну лад, это лирика все. Просто программисты любят новое и модное :)

Цитата:

l-liava-l, у тебя сегодня ДР ? с днём рождения)
Ага, спасибо большое! :)

kobezzza 28.02.2015 19:58

Цитата:

Ага, спасибо большое!
Присоединяюсь :) Расти большой, пусть код не будет лапшой! :D

Erolast 28.02.2015 20:01

Цитата:

Присоединяюсь Расти большой, пусть код не будет лапшой!
+
Цитата:

Вопрос был не в том какой шаблонизатор быстрее, а почему многие ругают ангуляр за его "тормознутость" и усложняют себе жизнь делая собсвтенную сборку целой ситсемы там, где это неуместно и противоречит бизнес задачам. Ведь можно подключить уже готовое и сэкономить ресурсы.
Потому что UNIX-way. С ангуляром я пишу так, как захотелось его создателям, с реактом - так, как хочу я сам.

melky 28.02.2015 20:25

Цитата:

Сообщение от l-liava-l
Реакт предназначен именно для этого, а его возможности, недостатки и архитектура не имеют значения в данном случае.

как-то ты высоко взял... так то каждый фреймворк дает на выходе html
ты еще скажи, что питон и nodejs одно и то же, потому что бекенд
или ... express , angular, mongodb - одно и то же, потому что на выходе приложение

раскрой свою позицию, а то совсем непонятно, что ты имеешь в виду...

Цитата:

Сообщение от l-liava-l
Ну не совсем, жуквери это либа которая могет простейшую шаблонизацию делать (вот этот ад $('</div>').append(...).) Ангуляр это целая система в которой тож есть свой шаблонизатор.
А реакт это не система, а отдельный модуль шаблонизации жэ.

угумс, он преподносит себя как Вьюшка
поэтому все и думают, что он только вьюшка

а нифига :)

есть паттерн такой - controller component. это компонент, который содержит в себе логику (и всё) и вызывает другие компоненты по правилу композиции

я по началу писал без flux - хапал данные с сервера и манипулировал ими напрямую в компоненте.

правда, потом, когда данных стало больше, и компонент раздулся, я решил вынести это дело во Flux (и не прогадал)

т.о. React - это не только View... в нём может быть логика, только её рекомендуется выносить в отдельные (как правило, вышестоящие) компоненты

Цитата:

Сообщение от l-liava-l
Ведь можно подключить уже готовое и сэкономить ресурсы

... а потом москвичи обнаружили, что за пределом МКАД всё-таки есть жизнь ))

серьезно. есть целый npm для модулей... дофигища реализаций модулей, обещаний, анимаций, ресурсов, маршрутизации... но при использовании комплексного фреймворка нельзя вкусить это разнообразие. а оно действительно того стоит :)

Цитата:

Сообщение от Erolast
Потому что UNIX-way. С ангуляром я пишу так, как захотелось его создателям, с реактом - так, как хочу я сам.

тоже реактщик?


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