Почему для понятия "Серверный рендеринг" обязательно применяют Реакт?
И что это значит?
Разве подстановка данных из базы и отдача шаблона клиенту не есть тот самый серверный рендеринг?
Все так, просто с проявлением SPA возникла проблема с поисковой индексацией, для которой пришлось заново изобретать этот велосипед ибо для фронт-фреймворков в виде React, Vue, Angular, ... это то чего они как раз пробовали избежать
т.е. если я с помощью аякса буду делать запрос на сервер и там в мини шаблон блока подставзять все значения и отдавать это и будет идеалогия реакта и ангуляра, что я отдаю не всю страницу, а только блоки с запаршиваемыми данными из базы?
но почему тогда пишут, что аякс, дом и другие мелочи не доступны для реакта или я что-то не так понял?
Антон Шульц,
1. это будет рендерингом html, но это не то что сейчас понимается под этим термином. Сейчас SSR это процесс первичной генерации страницы на сервере по заданному URI
2. Про DOM это тоже верно только наполовину. Современные Фреймворк работают в Shadow DOM и поэтому оперировать с DOM структурой становится бесполезно по тому что это не как не отражается ядром фреймворка и ничего из его функционала не используется. В рамках SPA работать приходится 100% через Фреймворк
3. В контексте SPA приложение работает только с API и оно никогда не отдает контент в виде HTML по тому что нужны данные только, а за отображение будет отвечать Фреймворк. Используют почти всегда json
Иван Шумов, если аякс, вставка данных в шаблон и отправка обратно на клиент это хтмл рендер, то как мне на нтивном js сделать аналог серверного рендеринга на подобии реакта или ангуляра?
(я просто не совсем тогда понимаю, что делает реакт на сервере)
(всегда казалось, что реакт и есть аякс с шаблонами в js).
работает только с API и оно никогда не отдает контент в виде HTML
но при использовании аякса, мы же тоже получаем в ответ json и его вставляем в хтмл.
Антон Шульц, json в html никто не вставляет) вставляют и изменяют ноды в DOM. На нативном JS серверный рендер никто не делает, ну, по крайней мере на клиентском js, просто по тому что на сервере в лучшем случае есть Nodejs. Есть готовые компоненты у всяких Nextjs, laravel и остальных для серверного рендеринга. Надо брать Фреймворк и гуглить решения для SSR под него. Руками это можно сделать, наверное, но я бы не советовал тратить на это вечность)
Иван Шумов, я хотел сказать, что получим json с количеством объектов и столько создадим новых блоков, котоыре вставим или заменим в нашем основном.
и получается под каждый блок мы пишем свой аякс на кнопки для обновления.
или я снова не туда плыву? )
Антон Шульц, я предлагаю вместо того чтобы задавать такие вопросы взять, допустим, пресловутый React и написать пару базовых приложений по официальным мануала. Это откроет довольно быстро много нового чем я буду пробовать упростить реалии до уровня понимания)