Comments 17
А в чем проблема доверить сборку тому же webpack-у и держать на стороне сервера готовый бандл?
Да, и компонент может быть и функцией (что вполне оправдано если у нас stateless компоненты)
Я без троллинга, вопрос реальный — были подводные камни или просто не рассматривали такой вариант?
Если не добавлять в компонент require('react')
или import React from 'react'
, нет смысла гонять это вебпаком, если внутри вебпак все равно использует бабел. Вот поэтому я напрямую бабелем и подготавливаю.
А если добавлять, тогда каждый компонент будет включать в себя реакт, это не хорошо.
Ну использовать бабель вы ему сами говорите. Если не нужен — можно и не использовать, но это, имхо, не столь важно. Речь о том что Ваше решение отбрасывает любую возможность использовать 3-party компоненты, что как то и не айс — все самому что ли ваять ручками?
>А если добавлять, тогда каждый компонент будет включать в себя реакт, это не хорошо.
Выше отметил — речь не конкретно о реакте а о включении сторонних модулей.
Да, согласен, у меня к концу проекта удаленный компонент разросся до 2к строк и встал вопрос о третесторонних модулях, о том как вынести общий функционал для некоторых компонентов.
Как вариант да — делать ручками, но я не решился.
Это одна из причин написания статьи, может быть кто-то делал по-другому и решал такие проблемы.
Например, вот решение Webpack + SystemJS
А вообще Webpack 2 очень дружит с SystemJS и сам бы вам всё автоматом на чанки разбил.
Чтобы не включать всюду реакт вебпаку в конфигурации можно указать externals.
В целом же, по-моему, затея сомнительная и не понятно как решить какие данные ему скормить (в примере только текущая дата).
Интересно узнать какая за этим бизнес-задача стояла :)
Могу рассказать, что стояла задача примерно такая.
Есть список пользователей.
При просмотре каждого пользователя формируется url
:
/user/{template}/{user_id}
Нужно было внедрить шаблонизатор для просмотра пользователя.
допустим
/user/table/1
— показать 1-го пользователя в табличной верстке
/user/flex/1
— показать 1-го пользователя в резиновой верстке
/user/.../1
— показать 1-го пользователя в…
и так далее, используя удаленные компоненты "представление" пользователя можно сделать независимым, его может делать другой человек и можно сделать сколько угодно таких тем для показа пользователя.
Так обычно просто команда работает с разными ветками и потом просто сливает все в одну, совместив таким образом все представления?
А в react native так можно?
А для чего было сделано это извращение?
Зачем нужно иметь возможность менять компоненты на сервере?
Почему не стандартный способ с обычными компонентами + json по сети?
Расскажите, пожалуйста, про применение этого способа.
Вот мой комментарий
Удаленные AJAX компоненты для ReactJS