ДокументацияНа основе файлов
Режим сервера и режим клиента
Проект Nexy либо отрисовывается на сервере либо маршрутизируется клиентом, например, проект Next.js - это либо страницы, визуализируемые на сервере, либо клиентское приложение. useCSR в nexyconfig.py выбирает.
Режим сервера (useCSR = False)
from nexy.core.models import NexyConfigModelfrom nexy.frontend import react class NexyConfig(NexyConfigModel): useFF = react()- Страницы - это файлы
.nexy,.mdили.mdxв папкеsrc/routes/. - Корень
layout.nexyвладеет<!DOCTYPE html>,<html>,<head>и<body>. - Клиентские компоненты (React, Vue, Svelte, Solid или Preact) разрешены как острова: вы импортируете один из них со страницы
.nexyи он гидратируется в браузере. См. Острова. - Клиентский компонент никогда не является маршрутом. Храните их в
src/components/. - Одна клиентская платформа за раз.
src/
routes/
layout.nexydocument
index.nexypage
api/users.pyAPI handler
components/Counter.tsx island
Клиентский режим (useCSR = True)
class NexyConfig(NexyConfigModel): useFF = react() useCSR = True- Страницы - это файлы вашей клиентской среды:
.tsxдля React,.vue,.svelte. - Файлы
.mdи.mdxостаются действительными маршрутами: Nexy отображает их на сервере внутри макета клиента, и клиентский маршрутизатор берет на себя навигацию оттуда. - Корневой макет любой платформы (
layout.tsx,layout.vue,layout.svelte) владеет<!DOCTYPE html>,<html>,<head>и<body>, как и корневой макет Next.js App Router. Nexy визуализирует его в Node для первого ответа, а фреймворк гидратирует весь документ. См. layout.tsx. - Файлы
.py- это обработчики API, обслуживаемые FastAPI, рядом с клиентскими маршрутами. - Файла
.nexyвообще нет, как иlayout.nexy. - Навигация между страницами происходит в браузере.
src/routes/
layout.tsxdocument
index.tsxpage
users.tsxpage
api/users.pyAPI handler
Что отвергается
Nexy проверяет проект перед nx dev, nx start и nx build и останавливается на списке файлов:
| Режим | Отклонено | Сообщение |
|---|---|---|
| сервер | .tsx, .jsx, .vue или .svelte в разделе src/routes/ |
переместите компоненты в src/components/ или установите useCSR = True |
| клиент | любой .nexy файл в src/routes/ |
запишите их как компоненты фреймворка или установите useCSR = False |
| обе | более одной внешней среды в useFF |
useFF must configure exactly one frontend framework |
| клиент | useRouter (модульный маршрутизатор) |
useCSR requires file-based routing |
| клиент | нет useFF |
useCSR requires a client framework |
Эта проверка игнорирует файлы и папки, начинающиеся с _ или ..
Какой из них
- Контент, маркетинг, документация, SEO-сайты: серверный режим с островами.
- Панели мониторинга и приложения с расширенной клиентской навигацией: клиентский режим.
- Python API с клиентским приложением сверху: клиентский режим, с обработчиками
.pyрядом со страницами.