ReactJS где же лучше применять?

Вижу люди начинают включать в разработку на продакшене эту назовем так библиотеку, даже есть уже платформа для построения мобильных приложений. Вот зайдя даже на их главную страницу - у них написано что React выступает как V в вашем MVC, но к примеру , я пишу на angular и связать его с react будет ну уж крайне не этично, но тогда задаюсь вопросом - с какими фреймворками или библиотеками его можно использовать в связке, его как я понимаю можно рендерить на сервере, я конечно пишу на NodeJS но пока такой практики не использовал, хотелось бы узнать насколько она действенна и в каких задачах. Вообщем расскажите по больше пожалуйста те кто применял его в коммерческой разработке.
  • Вопрос задан
  • 11505 просмотров
Пригласить эксперта
Ответы на вопрос 4
feligz
@feligz
Управление разработкой веб проектов
ReactJs можно применять в связке с Flux ( есть варианты, типа Reflux). Flux это архитектура построения сложный приложений, так же предоставляет набор методов для организации этой архитектуры.
Где применять. Однозначно там, где нужно обрабатывать большой массив данных в реальном времени. Рендеринг на React до сих пор самый быстрый из всех фреймворков.
React проще, чем Angular и Ember например, изначально работает на компонентах, причем шаблоны уже встроены в компоненты, что может быть весьма удобно. Компонентная архитектура это вообще будущее и вторая версия Angular потихоньку движется в этом же направлении. Есть так называемые mixin, готовые компоненты, которые уже можно встроить в приложение. Есть роутинг. В целом конечно Angular больше фиче комплит, огромная армия разработчиков постоянно добавляет что то, да и сама команда активно работает над фреймворком. Кроме того туча туториалов и готовых решений делает Ангуляр лучшим универсальным решением для всего фронтэнда на сегодняшний день.
Ответ написан
smanioso
@smanioso
Отмечайте ответы на свои вопросы!
Рекомендую посмотреть:
isomorphic.net
davidchang.github.io/ngReact
https://github.com/facebook/react/wiki/Complementa...
https://andywalpole.me/#!/blog/142134/2015-the-end...
После этого уже самому принимать решение, основываясь на личных предпочтениях.

ЗЫ: если уж так нравится Angular, то может стоит обратить внимание на его логическое продолжение в виде Angular 2.0? ЕМНИП, в нем View основан на более корректной концепции WebComponents.
Ответ написан
ColCh
@ColCh
Веб разработчик
Я применял. Что конкретно интересует?

Работает в связке с Express. Сама отрисовка - middleware. Вызываем в скрипте родительский компонент (в моём случае, это маршрутизатор), задаём контекст - данные из БД, URL, отрисовываем компонент в статическую строку разметки и выводим эту строку. Всё просто :)

Для маршрутизатора использую react-router

Ниже копипаст из проекта:
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);
        }
      });

    });
};


По сути, самые важные строчки:
var handler = React.createElement(Handler, {flux: flux, data: data});
var markup = React.renderToString(handler);
res(markup);

hander - компонент React, который получился, исходя из запрашиваемого URL
flux - в моём случае это Fluxxor (его объект помещается в корневой компонент и идёт сквозь всё дерево через context)
data - объект JSON с данными. Данные берутся из БД.

Ссылка на проект, который мне помог понять это всё: react-isomorphic-video-game-search
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы