Использование Yii2+ReactJs
Здравствуйте, не так много материала в гугле по моему вопросу. Хочу открывать для себя новый стек технологий но информации мало. Буду рад если люди поделятся материалом по данной теме. Спасибо!
Здравствуйте, не так много материала в гугле по моему вопросу. Хочу открывать для себя новый стек технологий но информации мало. Буду рад если люди поделятся материалом по данной теме. Спасибо!
Тут github.com/gothinkster/realworld современные примеры, реализации отдельно клиентской части (есть готовая реализация React / Redux) и серверной части (реализации на Yii2 еще нет даже в плане, но есть другие PHP фреймворки).
Это проект отличный способ открыть для себя новый стек. Отсутствие реализации реализации на Yii2 рекомендую воспринимать, как вызов. Ознакомится со спецификациями, другими примерами и реализовать самостоятельно. При наличии других примеров это будет не сложно и даст +42XP.
Рекомендую react+bem+yii2
— github.com/bem/create-bem-react-app
— www.youtube.com/...5TocS0zpLQeaYMBIWuWpd__Nl
использование BEM +42*2XP
facebook.github.io/react
github.com/yiisoft/yii2
Для работы с этим стэком у вас должна быть база по PHP, JS. Знание и понимание паттернов от банды четырех крайне желательны. Если нет ни того ни другого, то рекомендую выбрать другой стэк.
Скорее мне интересно примеры(описание) реализации стека этих технологий. Применял технологии(yii2/react) по отдельности. Уровень владения react чуть больше чем «hello world» :D Столкнулся с тем что в гугле не так много информации по моему вопросу.
Конечно примеров мало. Скажу свою точку зрения почему так выходит:
— Yii разработчики привыкли рендерить HTML на бэкенде,
— React разработчики используют бэкенд только как REST API и рендарят данные в браузере
— в результате инструменты имеют противоположенные подходы и стэк не имеет единого подхода
Я бы рекомендовал выбрать другой инструмент для реализации REST API.
Я бы рекомендовал выбрать другой инструмент для реализации REST API.
Какой?
У меня в командах отлично работает связка React+Redux на фронте и Node.js c Koa2 на async/await на бэкенде. Благодаря такому выбору разработчики могут лучше сконцентрироваться на тонкостях одного языка — JS и двигаться в сторону FullStack
Laravel если надо всё таки на пхп. Если нет, то есть например .net core, nodejs, go и 100500 бекендных фреймворков для реста)))
Любой. Просто не совмещать бульдога с носорогом.
Вероятно тебе нах не сдался этот React, особенно если тебе надо не в бога играться, а горшки обжигать. Поверь, он не вершина программинга, и этому фреймворку надо время чтобы созреть. Пусть его сношают энтузиасты.
Могу сказать по бизнес-логике: Всё что можно сделать на сервере — нужно делать на сервере. Потому что сервер у тебя один на всех, а вот браузеров наклепали разных версий — мама не горюй. Несовместимы даже у одного производителя (и я сейчас не про IE).
Мой совет — не изобретай велосипедов. Смотри на чём подняты готовые проекты, форкай их себе и работай с тем что там. Львиная доля возможностей фреймворков имеет очень ограниченное применение, раз в никогда. Соответственно выучить фреймворк можно только на практике. На боевой практике. Изучая успешные внедрения, и не наступая на грабли.
[UPD] по комменту вижу, что речь о том, как реализовать isomorphic application с этой связкой.
правильно?
Столкнулся с тем что в гугле не так много информации по моему вопросу.
а в чем вопрос-то?
в общем случае «как использовать с ?» не отличается ничем от «как использовать <другой frontend фреймворк> с <другой backend framework>?»
берешь и используешь. HTTP как канал связи. всё.
[UPD] по комменту вижу, что речь о том, как реализовать isomorphic application с этой связкой.правильно?
Да
ну, потенциально это сложно будет сделать:
темплейты размазаны по разным ReactJS компонентам, это джаваскрипт.
бекенд на РНР, джаваскрипт ему не понятен.
то есть, даже если компоненты при первой инициализации не будут заново рендериться, а будут использовать уже готовые элементы страницы, сам вопрос рендеринга на сервере обещает шаманство с бубном и промежуточные решения. типа, перехода с JSX на какой-то язык шаблонов, понятный и бекенду тоже(сам такого не пробовал, также там встанет вопрос получения данных для рендеринга — то есть и часть бизнес-логики надо будет делать понятной как для ReactJS, так и для РНР кода...)
собственно, думаю, к этому Никита Галкин выше и писал:
— Yii разработчики привыкли рендерить HTML на бэкенде,
— React разработчики используют бэкенд только как REST API и рендарят данные в браузере
— в результате инструменты имеют противоположенные подходы и стэк не имеет единого подхода
что справедливо.
с другой стороны, можно так и использовать: тонкий бекенд(только отдает и получает данные, минимум логики, разве что валидация и проверка прав доступа)+толстый фронтенд(всё остальное).
16 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів