发布于 2026-01-06 0 阅读
0

React 面食的组织:Simplificando o caos com uma nova estrutura 🚀

React 面食的组织:Simplificando o caos com uma nova estrutura 🚀

药膏!

在软件世界中,存在着“组织面食和软件结构不同”的情况,因此,我们要了解不同的设计方法,并以有利的方式进行设计。

请注意,您可以将其组织为最近的意大利面项目。

Algumas contextualizações

我对 C# (.NET) 的影响非常大,在过去的几年中 (2016-2018),始终致力于 MVC (模型-视图-控制器)。询问有关项目,关于应用程序时代分开的 3 项:

模型 - Objetos que seriam Armazenados no banco de bados,hoje em dia conhecidos como Entidades

视图 -应用程序的、文件格式、登录页面、初始页面、视觉效果、组件入口和常用组件、控制器连接和对象使用方法(模型,或 MVVM 架构)ViewModels) de bados。

控制器 - 控制应用程序、验证验证、重新注册、访问银行、分析模型、重定向视图、应用程序、控制应用程序。

组织面食

Cada 面食 armazenava arquivos de uma finada camada。节奏、节奏、服务依赖于设计模式存储库

Nessa arquitetura,os arquivos eram separados por tipo,ficando com uma estrutura mais ou menos assim。

src/
  controllers/
    LoginController
    UserController
  models/
    LoginModel
    UserModel
  services/
    LoginService
    UserService
  views/
    LoginView
    UserProfileView
Enter fullscreen mode Exit fullscreen mode

在 2018 年的 React 中,我们将使用“reativo”组件来构建基础类。

Com muitos

  • this
  • bind
  • constructor
  • this.setState({ ...this.state, count: this.state.count + 1 })

决定使用“MVC”而不是 React。

components/
  LoginForm.js
models/
  User.js
services/
  userProfile.js
views/
  UserProfile.jsx
Enter fullscreen mode Exit fullscreen mode

先锋

很容易就可以做出决定。

在页面中,您可以看到视图、 UI集成部分以及API服务

考虑到对象,请注意模型和组件之间的比较

挑战

Com o tempo, o tamanho das Pastas cresce bastante!

Com React,是多个组件的共同(或推荐)。

UI 是多种移动部件的组合,具有多种特性,灵活、灵活、简单、组件化。

但是,遇到困难时,请先了解一下功能,然后再进行比较。

市场上的主要问题,新功能,您可以准确地了解不同面食的新情况,解决困难的问题,并应用在睾丸单元上,这可能是困难的ainda de fazer mudanças。

功能性面食组织

这是一个解决问题的方法,是在讨论讨论中重新发明面食的方法。

您可以在任何类型的应用程序中使用系统的“功能”。

Ela segue a seguinte filosofia

Apagar uma funcionalidade deve ser tão fácil quanto apagar uma 面食。

先锋

需要组织更多的工作,要准备好与直接连接的面食相关的所有内容,以及模块化操作的简单方法features

components/
  button/
  input/
features/
  authentication/
    Login.js
    LoginForm.js
    useAuth.js
    AuthService.js    
    AuthSlice.js
  profile/
    Profile.js
    UserProfile.js
    ProfileService.js
Enter fullscreen mode Exit fullscreen mode

挑战

共享档案。

  • Componentes não globais
  • 接口
  • 钩子

解决了一些问题,并在解决问题时features做出了困难的决定,并且可以根据功能进行比较,而不是全局算法。

如果存在两个功能比较的组件UserAvatar,则可以选择与面食搭配的选项components,这对节奏的掌握很重要,而面食的所有组件都不是私人应用的。

然而,尽管如此,组件之间的关系却非常困难。

重新开始意大利面,以节奏、节奏、大面积应用、将新月形和破坏组织化,将意大利面放在适当的位置

但是,您可以使用UserProfileUserSettings和与 Usuário 相关的其他功能,但这些功能不适用于应用程序的不同部分。

如果您想与应用程序相关,您可以选择使用意大利

components/
  userAvatar/
features/
  profile/
    Profile.js
    UserProfile.js
    ProfileService.js
  settings/
    Settings.js
    UserSettings.js
Enter fullscreen mode Exit fullscreen mode

解决问题的建议

进行各种项目、辩论和讨论,决定按功能按类型混合文件夹、或更改意大利面功能,以及在全球各地购买新意大利面的建议。

features应用程序的某些部分受到限制,因此不能使用宏指令

解决意大利面的组织问题(muito famoso e em alta no BackEnd

Estrutura 意大利面-Por-Dominio-Por-Tipo

感知到的农业项目的结果是一个巨大的数量,是一个意大利面,也是一个接近的农业项目的结果

标志,sugiro que em níveis mais altos da aplicação,seja seguida uma estratégia de Pasta-por-domínio,onde o domínio é uma seção da aplicação querepresenta uma entidade or funcionalidade,visando evitar or acúmulo de arquivos“precoce”que,最终,我们将制作面食。

现在,您需要使用意大利面

assets/
domains/
  /user
    /components
      UserAvatar.js
    /enums
    /features
      /profile
      /settings
    /types
    /hooks
global/
  /components
  /enums
  /hooks
  /routes
  /store
  /types
Enter fullscreen mode Exit fullscreen mode

Quando não é necessário

首先要确定意大利面的 1 种情况,例如:

domains/
  /user
    UserAvatar.js
    /features
      /profile
        UserProfile.js
        ProfileService.js
Enter fullscreen mode Exit fullscreen mode

如果是这样,请以 2 个确定的意大利面为例,以示例为例UserAvatar.js意大利面与 1 个 arquivo 的意大利面进行比较。

Neste caso,吃一系列意大利面,domains然后将其放在第二个应用程序中,ficando assim:

src/
  user/
    UserAvatar.js
    features/
      /profile
        UserProfile.js
        ProfileService.js
Enter fullscreen mode Exit fullscreen mode

这是一个设计策略和流体并利用它来改善世界的想法。

  • 组织或组织意大利面时,请先将意大利面放入“agrupar”中。
  • 组织我们的新成员,推动应用程序的快速发展。

Comparar/Navegar 是意大利面的比较工具,可以方便地进行比较。

Quando criar uma 意大利面-波-蒂波

Quando uma 意大利面 abriga dois arquivos do mesmo Tipo。

Esse Número éuma sugestão,caso você queira mudar para 3, a fim de reduzir on número de pastas, éuma opção também。

例如,多用户用户包括一些重要的钩子,如 useUser.js、useUserPreferences.js、useUserSettings.js 等,这些钩子的主要用途如下:

domains/
  /user
    /components
      UserAvatar.js
      UserBadge.js
    /hooks
      useUser.js
      useUserPreferences.js
      useUserSettings.js
    /features
      /profile
        UserProfile.js
        ProfileService.js

Enter fullscreen mode Exit fullscreen mode

Neste caso 是一种新的面食调整方法,可以帮助您对所需的相关内容进行本地化,并允许最小化(通过 IDE 进行调整),以便在需要时进行本地化操作。

结论

一项关于意大利面的策略建议,是一种混合签证的方法,以平衡意大利面的好处和意大利面的功能。

这是一种代表实体或功能的主权分割应用程序,可以根据必要的情况对主权进行细分。

模型的灵活性允许根据项目和设备的特殊需要进行调整。

这是一个面食和艺术品的组织,旨在激发人们对项目的理想策略。

独立的策略,最终的目标是法律、导航和管理的便利。

文章来源:https://dev.to/ocodista/nova-esttrutura-de-pastas-para-react-2nb