الوثائقفهم النموذج

هيكل المشروع

كل ملف في مشروع Nexy له وظيفة واحدة، ويعتمد مكان انتقاله على جهاز التوجيه: src/routes/ للتوجيه المستند إلى الملف، src/apps/ لجهاز التوجيه المعياري.

المستوى الأعلى

my-app/
src/
routes/every file is a route
index.nexy→ /
layout.nexyshared layout, not a route
api/hello.py→ /api/hello
components/imported components (a convention, not enforced)
globale.cssglobal styles (created by nexy new)
public/served at /
nexyconfig.pyproject configuration
pyproject.toml
package.jsononly with a client framework
vite.config.tsonly with a client framework
__nexy__/build output - generated, never edited

لاختيار مجلد، اسأل ما هو الملف:

  • شيء يمكن للمتصفح فتحه - طريق: src/routes/.
  • قطعة تستخدم بعدة طرق - مكون أو وحدة نمطية: src/components/، src/.
  • ملف قدم كما هو - public/.
  • تم إنشاؤه - __nexy__/; لا تقم بتحريره أبدًا.
my-app/
src/
apps/controllers, modules and their views
app_module.pythe root module, given to useRouter
app_controller.py
app_view.nexya view a controller returns
layout.nexythe frame the controllers pass their view to
users/one folder per feature: controller, module, service, model
components/imported components (a convention, not enforced)
globale.cssglobal styles (created by nexy new)
public/served at /
nexyconfig.pyproject configuration: useRouter = AppModule
pyproject.toml
package.jsononly with a client framework
vite.config.tsonly with a client framework
__nexy__/build output - generated, never edited

لاختيار مجلد، اسأل ما هو الملف:

  • عنوان URL - طريقة وحدة التحكم في src/apps/، المسجلة بواسطة الوحدة النمطية الخاصة بها.
  • صفحة - عرض .nexy بجوار وحدة التحكم الخاصة بها، تم إرجاعها بـ useViews.
  • قطعة تستخدم بعدة وجهات نظر - src/components/.
  • ملف قدم كما هو - public/.
  • تم إنشاؤه - __nexy__/; لا تقم بتحريره أبدًا.
my-app/
src/
legacy/the FastAPI router you include
api.pyrouter = APIRouter(prefix="/api")
routes/pages and route files, served next to it
index.nexy→ /
components/imported components (a convention, not enforced)
globale.cssglobal styles (created by nexy new)
public/served at /
nexyconfig.pyproject configuration: useRouter = router
pyproject.toml
package.jsononly with a client framework
vite.config.tsonly with a client framework
__nexy__/build output - generated, never edited

لاختيار مجلد، اسأل ما هو الملف:

  • مسار التطبيق المضمن - حيث هو موجود بالفعل، هنا src/legacy/.
  • صفحة أو مسار جديد - src/routes/، بجوار جهاز التوجيه المتضمن.
  • ملف قدم كما هو - public/.
  • تم إنشاؤه - __nexy__/; لا تقم بتحريره أبدًا.

src/routes/

يصبح كل ملف مسارًا، باستثناء الأسماء المحجوزة أدناه. مسار الملف مطروحًا منه الامتداد هو عنوان URL - راجع التوجيه المستند إلى الملف.

ملف الدور
layout.nexy يلتف صفحات الأخوة والأبناء
errors.nexy 500 صفحة للدليل
notfound.nexy 404 صفحة للدليل
dependencies.py تبعيات FastAPI مشتركة للدليل
__init__.py Python علامة الحزمة
loading.nexy محجوز - مستبعد من المسارات، ولكن ليس له تأثير وقت التشغيل حتى الآن

كل اسم صفحة موجود أيضًا لكل إطار عمل. مع تكوين react()، يتم حجز layout.jsx و layout.tsx تمامًا مثل layout.nexy. وقد بنيت القوائم في nexy/core/config.py (LAYOUT_FILE_NAMES، ERROR_FILE_NAMES، NOTFOUND_FILE_NAMES، LOADING_FILE_NAMES).

src/apps/

تجيب وحدة التحكم على عناوين URL، وتجمع الوحدة وحدات التحكم والموفرين، ويتم تركيب الوحدة الجذرية مع useRouter في nexyconfig.py:

src/apps/app_controller.py
from nexy.decorators import Controllerfrom nexy.hooks import useViews LAYOUT = "src/apps/layout.nexy"  @Controller()class AppController:    async def get(self):        return useViews(LAYOUT, context={"children": useViews("src/apps/app_view.nexy")})
src/apps/app_module.py
from nexy.decorators import Module from .app_controller import AppController  @Module()class AppModule:    controllers = [AppController]
nexyconfig.py
from nexy.core.models import NexyConfigModel from src.apps.app_module import AppModule  class NexyConfig(NexyConfigModel):    useRouter = AppModule    useAliases = {"@": "src"}  # the views import @/components/...

لا يوجد ملف في src/apps/ يمثل مسارًا باسمه: فقط وحدات التحكم التي تسردها الوحدة النمطية هي التي تجيب. انظر التوجيه المعياري.

public/

يتم تقديم الملفات هنا من جذر الموقع: /favicon.ico، /robots.txt، الصور، الخطوط.

__nexy__/

أنشئ بواسطة nx build (وبواسطة nx dev للأجزاء التي يحتاجها). أنه يحتوي على:

  • الملفات .nexy المجمعة، كحزمة Python (__nexy__/src/...)؛
  • نقاط دخول العميل التي تم إنشاؤها (main.ts، vite.ts، *.auto.ts)؛
  • client/ بعد Vite البناء - الأصول، البيان، HTML المعروض مسبقًا؛
  • build-cache.json.

تعامل مع الدليل بأكمله على أنه يمكن التخلص منه: احذفه وأعد بنائه. يؤدي تحريره يدويًا إلى فقدان التغيير في البنية التالية. أضفه إلى .gitignore.

الخطوات التالية

حرِّر على GitHub

Enter يفتح النتيجة، وEsc يغلق.