Страницы

Поиск по вопросам

понедельник, 24 февраля 2020 г.

ReactJs и НЕ SPA

#reactjs #spa


Можно ли ReactJs использовать не в SPA приложениях? Т.е., рендер html производит
сервер (PHP), а React только для динамических интерфейсов над этим отрендеренным сервером
представлением - что то вроде, как сейчас с jQuery.

На первый взгляд не вижу развития такого сценария, потому что вроде если сервер будет
рендерить html, то представление срендеренное на сервере должно иметь точное соответствие
с тем представлением, которое рендерит компонент ReactJs и получается, что как минимум
поддерживать одинаковый рендеринг html на сервере и на клиенте в ReactJs будет ужасно. 

Изоморфное приложение - это вроде тоже SPA, с рендерингом на сервере средствами ReactJs,
а меня интересует именно та ситуация, когда типовой рендеринг html на сервере средствами
(php) и динамика на стороне клиента - как это было раньше через jQuery. 

Можно ли как-то реализовать это с ReactJs?
    


Ответы

Ответ 1



Можно и нужно :) Хоть и поначалу очень непривычно. Основа React - компоненты, а не приложения целиком. Компонент содержит в себе логику для генерации его отображения в виде html(метод render()), хранит свойства и дочерние компоненты, а так же получает и обрабатывает внешние и внутренние события. Вас абсолютно никто не заставляет делать типичный для SOA гигантский компонент "приложение", использующий абсолютно все написанные вами компоненты, и отоброжающийся на всю площадь страницы. Никто не навязывает использование маршрутизации - react-route поставляется как отдельный, независимый пакет. Основная стратегия при переходе с других библиотек, и вообще при разработке с использованием React - начинать писать компоненты для самых низкоуровневых элементов интерфейса, постепенно включая их в состав более крупных. Всё очень просто: Ваш бекенд выдаёт статичную html-страничку В фронтенде пишете React-компоненты для самых небольших частей приложения - кнопочек, переключателей, полей ввода, блоков для отображения и т.д - для всего, чему нужно добавить "динамичность". Из статичных html-элементов извлекаете нужные вам значения, и рендерите React-компоненты прямо вместо этих элементов, передавая извлеченные значения в конструктор.

Комментариев нет:

Отправить комментарий