Heim > Web-Frontend > js-Tutorial > Wie viele Arten von Frontend-Projektstrukturen gibt es?

Wie viele Arten von Frontend-Projektstrukturen gibt es?

WBOY
Freigeben: 2024-08-08 16:03:39
Original
912 Leute haben es durchsucht

How many types of frontend project structures are there?

Die Strukturierung eines Frontend-Projekts ist sehr wichtig für die Entwicklung einer effizienten und leicht zu wartenden Anwendung. Eine gute Struktur macht den Code leicht verständlich. und kann Funktionen effizient erweitern Vor allem bei der Verwendung Next.js und TypeScript in der Entwicklung Hier sind einige häufig verwendete Projektstrukturen:

1. Grundstruktur

my-next-app/
├── public/              # Static files like images, fonts, etc.
├── src/                 # Source code
│   ├── components/      # Reusable components
│   ├── pages/           # Page components (Next.js routing)
│   ├── styles/          # CSS/SASS files
│   ├── hooks/           # Custom hooks
│   ├── contexts/        # Context API providers
│   ├── utils/           # Utility functions
│   ├── types/           # TypeScript types/interfaces
│   ├── services/        # API calls or services
│   ├── lib/             # Any additional libraries or helpers
│   └── config/          # Configuration files
├── .gitignore           # Git ignore file
├── next.config.js       # Next.js configuration
├── package.json         # npm/yarn package file
└── tsconfig.json        # TypeScript configuration
Nach dem Login kopieren

2. Atomic Design Structure

Atomic Design ist ein UI-Designkonzept, bei dem die Trennung von Komponenten nach Größe und Funktionalität im Vordergrund steht. Kann in 5 Ebenen unterteilt werden: Atome, Moleküle, Organismen, Vorlagen und Seiten

my-next-app/
├── public/                 # Static files
├── src/
│   ├── components/         # UI components
│   │   ├── atoms/          # Smallest elements like buttons, inputs
│   │   ├── molecules/      # Combinations of atoms (e.g., form groups)
│   │   ├── organisms/      # Complex UI components (e.g., header, footer)
│   │   ├── templates/      # Page templates with placeholders
│   │   └── pages/          # Page components
│   ├── pages/              # Next.js routing (can be left for dynamic routing)
│   ├── hooks/              # Custom hooks
│   ├── contexts/           # Context providers
│   ├── utils/              # Utility functions
│   ├── types/              # TypeScript interfaces/types
│   ├── services/           # API services
│   ├── lib/                # Additional libraries/helpers
│   └── config/             # Configurations
├── .gitignore
├── next.config.js
├── package.json
└── tsconfig.json
Nach dem Login kopieren

3. Funktionsbasierte Struktur

Feature-basierte Struktur ist ein weiterer Ansatz, der die Verwaltung und Erweiterung neuer Funktionen erleichtert. Es ist ganz einfach

my-next-app/
├── public/                 # Static files
├── src/
│   ├── features/           # Separate by features/modules
│   │   ├── featureA/
│   │   │   ├── components/ # Components specific to FeatureA
│   │   │   ├── pages/      # Pages related to FeatureA
│   │   │   ├── hooks/      # Hooks specific to FeatureA
│   │   │   ├── services/   # API calls related to FeatureA
│   │   │   └── utils/      # Utility functions for FeatureA
│   │   └── featureB/       # Another feature module
│   ├── shared/             # Shared resources across features
│   │   ├── components/     # Shared components
│   │   ├── hooks/          # Shared hooks
│   │   ├── contexts/       # Shared contexts
│   │   └── utils/          # Shared utilities
│   ├── styles/             # Global styles
│   └── config/             # Configuration files
├── .gitignore
├── next.config.js
├── package.json
└── tsconfig.json
Nach dem Login kopieren

4. Monorepo-Struktur mit NX oder Turborepo

Bei dieser Struktur handelt es sich um Projektmanagement mit mehreren Projekten oder Modulen an einem Ort. Geeignet für große Teams oder Projekte, die eine klare Trennung der einzelnen Entwicklungsbereiche erfordern

my-next-monorepo/
├── apps/                   # Applications (Next.js, React, etc.)
│   ├── web/                # Next.js app
│   └── admin/              # Another Next.js app or admin panel
├── packages/               # Shared packages or libraries
│   ├── ui/                 # UI component library
│   ├── utils/              # Utility functions
│   ├── hooks/              # Custom hooks
│   └── services/           # API service packages
├── .gitignore
├── nx.json                 # NX configuration (if using NX)
├── turbo.json              # Turborepo configuration (if using Turborepo)
├── package.json
└── tsconfig.json
Nach dem Login kopieren

5. Schichtarchitekturstruktur

Das Design der mehrschichtigen Architektur erleichtert die Trennung von Projektfunktionen

my-next-app/
├── public/                 # Static files
├── src/
│   ├── presentation/       # UI components, pages, and routing
│   │   ├── components/     # UI components
│   │   ├── pages/          # Next.js pages
│   │   └── routes/         # Custom routing logic
│   ├── domain/             # Business logic and entities
│   │   ├── entities/       # Domain entities
│   │   ├── useCases/       # Business use cases
│   │   └── repositories/   # Interfaces for data repositories
│   ├── infrastructure/     # Data access and external services
│   │   ├── api/            # API service implementations
│   │   ├── db/             # Database access
│   │   └── thirdParty/     # Third-party integrations
│   ├── shared/             # Shared utilities and configurations
│   │   ├── utils/          # Utility functions
│   │   └── config/         # Configuration files
│   └── styles/             # Global styles
├── .gitignore
├── next.config.js
├── package.json
└── tsconfig.json
Nach dem Login kopieren

6. Komponentengesteuerte Struktur mit Storybook

Die Verwendung von Storybook ist ein systematischer Test und die Entwicklung separater UI-Komponenten. Erleichtert das Testen der Komponentenfunktionalität

my-next-app/
├── public/                 # Static files
├── src/
│   ├── components/         # UI components
│   │   ├── Button/         # Button component
│   │   │   ├── Button.tsx
│   │   │   ├── Button.stories.tsx
│   │   │   └── Button.test.tsx
│   │   └── Input/          # Input component
│   ├── pages/              # Next.js pages
│   ├── hooks/              # Custom hooks
│   ├── utils/              # Utility functions
│   ├── styles/             # Global styles
│   └── config/             # Configuration files
├── .storybook/             # Storybook configuration
│   ├── main.js
│   └── preview.js
├── .gitignore
├── next.config.js
├── package.json
└── tsconfig.json
Nach dem Login kopieren

Bei der Auswahl einer Struktur zu berücksichtigende Faktoren

Die Wahl einer Projektstruktur hängt von vielen Faktoren ab, wie z.B.

  1. Projektgröße: Wenn das Projekt groß ist Wählen Sie eine Struktur, die die Verwaltung und Erweiterung Ihres Projekts erleichtert.
  2. Größe des Entwicklungsteams: Wenn Sie ein großes Team haben Sie sollten eine Struktur wählen, die die einzelnen Teile für die Zusammenarbeit klar voneinander trennt
  3. Projektkomplexität: Wenn das Projekt komplex ist. Sie sollten eine Struktur wählen, die diese Komplexität bewältigen kann
  4. Verwendete Technologien: Verwendete Technologien wie Next.js, TypeScript und Storybook können ordnungsgemäß strukturiert und empfohlen werden

Best Practices für die Projektstruktur

  • Komponenten klein und wiederverwendbar halten: Komponenten sollten eines tun und zwar gut. Komponenten überall wiederverwenden

das Projekt.

  • Kontexte mit Bedacht einsetzen: Nutzen Sie die React Context API, um den Status über Komponenten hinweg zu verwalten, die Zugriff auf dieselben Daten benötigen.
  • Stile organisieren: Organisieren Sie Ihre CSS/SASS-Dateien effizient, indem Sie CSS-Module oder gestaltete Komponenten für Modularität verwenden.
  • TypeScript für Typsicherheit nutzen: Definieren Sie Typen und Schnittstellen, um Typsicherheit und bessere Lesbarkeit des Codes zu gewährleisten.
  • Tests schreiben: Beziehen Sie Unit- und Integrationstests für Komponenten und Dienstprogramme ein, um die Funktionalität sicherzustellen.

Zu berücksichtigende Tools

  • Storybook: Für die Entwicklung und das Testen von UI-Komponenten
  • Jest: Zum Testen und Überprüfen von Code
  • ESLint: Zum Überprüfen und Formatieren von Code
  • Hübscher: für die automatische Codeformatierung
  • Husky & Lint-Staged: Zum Einrichten von Pre-Commit-Hooks
  • Next.js Custom Server: zur Verwendung serverseitiger Logik

Ich hoffe, diese Informationen helfen Ihnen bei der Auswahl der richtigen Projektstruktur für Ihre Frontend-Entwicklung!

Das obige ist der detaillierte Inhalt vonWie viele Arten von Frontend-Projektstrukturen gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage