LINUX.ORG.RU

История изменений

Исправление x3al, (текущая версия) :

В общем,

  • Джанга + реакт — вполне ок, но обычно джанга в таком случае не рендерит HTML вообще, а служит rest (или graphql для хипстеров)-бэкэндом. Ну, не считая тривиального «вытащить хэш из webpack-loader в html».
  • Никогда не смешивай 2 разных типа шаблонов в одном месте. Вообще, на одной странице одновременно и сервер-шаблоны, и клиент-шаблоны встречаются в основном при медленном перепиливании (например, с первого на второе) либо при встраивании готовых компонентов. При этом:
    • Отрендеренный бэкэндом HTML обязан быть непрозрачным блобом для фронтэнд-фреймворка. Его нельзя парсить, можно только взять и вставить в нужное место.
    • Аналогично: весь UI-слой фронтэнд-фреймворка обязан быть непрозрачным блобом для бэкэнд-шаблонов. Фронтэнду можно передать настройки, но идея, скажем, писать JSX джангой (и компилить на клиенте) — ужасна, хоть и технически реализуема.
    • Если хочешь SSR с джангой — работай с нодой из джанги. Где-то тут возникнет вопрос «а зачем тут вообще джанга?». Хотя SSR-руты могут быть отделены от API-рутов, тогда джанга опять же не будет иметь понятия ни о ноде, ни о html.

Исправление x3al, :

В общем,

  • Джанга + реакт — вполне ок, но обычно джанга в таком случае не рендерит HTML вообще, а служит rest (или graphql для хипстеров)-бэкэндом. Ну, не считая тривиального «вытащить хэш из webpack-loader в html».
  • Никогда не смешивай 2 разных типа шаблонов в одном месте. Вообще, на одной странице одновременно и сервер-шаблоны, и клиент-шаблоны встречаются в основном при медленном перепиливании (например, с первого на второе) либо при встраивании готовых компонентов. При этом:
    • Отрендеренный бэкэндом HTML обязан быть непрозрачным блобом для фронтэнд-фреймворка. Его нельзя парсить, можно только взять и вставить в нужное место.
    • Аналогично: весь UI-слой фронтэнд-фреймворка обязан быть непрозрачным блобом для бэкэнд-шаблонов. Фронтэнду можно передать настройки, но идея, скажем, писать JSX джангой (и компилить на клиенте) — ужасна, хоть и технически реализуема.
    • Если хочешь SSR с джангой — работай с нодой из джанги. Где-то тут возникнет вопрос «а зачем тут вообще джанга?». Хотя SSR-руты могут быть отделены от API-рутов.

Исправление x3al, :

В общем,

  • Джанга + реакт — вполне ок, но обычно джанга в таком случае не рендерит HTML вообще, а служит rest (или graphql для хипстеров)-бэкэндом. Ну, не считая тривиального «вытащить хэш из webpack-loader в html».
  • Никогда не смешивай 2 разных типа шаблонов в одном месте. Вообще, на одной странице одновременно и сервер-шаблоны, и клиент-шаблоны встречаются в основном при медленном перепиливании (например, с первого на второе) либо при встраивании готовых компонентов. При этом:
    • Отрендеренный бэкэндом HTML обязан быть непрозрачным блобом для фронтэнд-фреймворка. Его нельзя парсить, можно только взять и вставить в нужное место.
    • Аналогично: весь UI-слой фронтэнд-фреймворка обязан быть непрозрачным блобом для бэкэнд-шаблонов. Фронтэнду можно передать настройки, но идея, скажем, писать JSX джангой (и компилить на клиенте) — ужасна, хоть и технически реализуема.

Исходная версия x3al, :

В общем,

  • Джанга + реакт — вполне ок, но обычно джанга в таком случае не рендерит HTML вообще, а служит rest (или graphql для хипстеров)-бэкэндом
  • Никогда не смешивай 2 разных типа шаблонов в одном месте. Вообще, на одной странице одновременно и сервер-шаблоны, и клиент-шаблоны встречаются в основном при медленном перепиливании (например, с первого на второе) либо при встраивании готовых компонентов. При этом:
    • Отрендеренный бэкэндом HTML обязан быть непрозрачным блобом для фронтэнд-фреймворка. Его нельзя парсить, можно только взять и вставить в нужное место.
    • Аналогично: весь UI-слой фронтэнд-фреймворка обязан быть непрозрачным блобом для бэкэнд-шаблонов. Фронтэнду можно передать настройки, но идея, скажем, писать JSX джангой (и компилить на клиенте) — ужасна, хоть и технически реализуема.