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
在 2018 年的 React 中,我们将使用“reativo”组件来构建基础类。
Com muitos
thisbindconstructorthis.setState({ ...this.state, count: this.state.count + 1 })
决定使用“MVC”而不是 React。
components/
LoginForm.js
models/
User.js
services/
userProfile.js
views/
UserProfile.jsx
先锋
很容易就可以做出决定。
在页面中,您可以看到视图、 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
挑战
共享档案。
- Componentes não globais
- 接口
- 钩子
解决了一些问题,并在解决问题时features做出了困难的决定,并且可以根据功能进行比较,而不是全局算法。
如果存在两个功能比较的组件UserAvatar,则可以选择与面食搭配的选项components,这对节奏的掌握很重要,而面食的所有组件都不是私人应用的。
然而,尽管如此,组件之间的关系却非常困难。
重新开始意大利面,以节奏、节奏、大面积应用、将新月形和破坏组织化,将意大利面放在适当的位置。
但是,您可以使用UserProfile、UserSettings和与 Usuário 相关的其他功能,但这些功能不适用于应用程序的不同部分。
如果您想与应用程序相关,您可以选择使用意大利面。
components/
userAvatar/
features/
profile/
Profile.js
UserProfile.js
ProfileService.js
settings/
Settings.js
UserSettings.js
解决问题的建议
进行各种项目、辩论和讨论,决定按功能按类型混合文件夹、或更改意大利面功能,以及在全球各地购买新意大利面的建议。
但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
Quando não é necessário
首先要确定意大利面的 1 种情况,例如:
domains/
/user
UserAvatar.js
/features
/profile
UserProfile.js
ProfileService.js
如果是这样,请以 2 个确定的意大利面为例,以示例为例UserAvatar.js,将意大利面与 1 个 arquivo 的意大利面进行比较。
Neste caso,吃一系列意大利面,domains然后将其放在第二个应用程序中,ficando assim:
src/
user/
UserAvatar.js
features/
/profile
UserProfile.js
ProfileService.js
这是一个设计策略和流体并利用它来改善世界的想法。
- 组织或组织意大利面时,请先将意大利面放入“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
Neste caso 是一种新的面食调整方法,可以帮助您对所需的相关内容进行本地化,并允许最小化(通过 IDE 进行调整),以便在需要时进行本地化操作。
结论
一项关于意大利面的策略建议,是一种混合签证的方法,以平衡意大利面的好处和意大利面的功能。
这是一种代表实体或功能的主权分割应用程序,可以根据必要的情况对主权进行细分。
模型的灵活性允许根据项目和设备的特殊需要进行调整。
这是一个面食和艺术品的组织,旨在激发人们对项目的理想策略。
独立的策略,最终的目标是法律、导航和管理的便利。
文章来源:https://dev.to/ocodista/nova-esttrutura-de-pastas-para-react-2nb