Репутація українського ІТ. Пройти опитування Асоціації IT Ukraine
×Закрыть

Использование Yii2+ReactJs

Здравствуйте, не так много материала в гугле по моему вопросу. Хочу открывать для себя новый стек технологий но информации мало. Буду рад если люди поделятся материалом по данной теме. Спасибо!

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Разговор о JS, чую срач.

Тут github.com/gothinkster/realworld современные примеры, реализации отдельно клиентской части (есть готовая реализация React / Redux) и серверной части (реализации на Yii2 еще нет даже в плане, но есть другие PHP фреймворки).

Это проект отличный способ открыть для себя новый стек. Отсутствие реализации реализации на Yii2 рекомендую воспринимать, как вызов. Ознакомится со спецификациями, другими примерами и реализовать самостоятельно. При наличии других примеров это будет не сложно и даст +42XP.

Вот думаю что лучше выбрать под реализацию angular+yii или react+yii :D

Рекомендую 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 и рендарят данные в браузере
— в результате инструменты имеют противоположенные подходы и стэк не имеет единого подхода

что справедливо.

с другой стороны, можно так и использовать: тонкий бекенд(только отдает и получает данные, минимум логики, разве что валидация и проверка прав доступа)+толстый фронтенд(всё остальное).

спасибо за разбор моего вопроса :D

Подписаться на комментарии