React Native:Como 组织组件
项目总体结构
米哈·菲洛索菲亚·索布雷·组件
“区域功能”组织
避免深切关注
菲克·弗莱西韦尔
积分⭐️
您可以轻松地获得这些 - mas como você o 组织吗?
您可以使用 React Native 或 React Native 来开发各种不同的版本,以组织或组织代码。您可以在媒体中找到 10 条链接。
Neste 教程,如何平衡平衡。乌玛·马内拉(Uma maneira)组织了我们的工作,以帮助我们的工作人员和工作人员,而不是为年轻人提供帮助。
项目总体结构
在本教程中,我们将介绍如何使用 React Native 界面中的所有组件,以正常使用 React Native 的方式。
# Estrutura de diretórios do projeto
/app
/assets
/components
/config
/navigation
/screens
/util
index.js
请不要提及或恢复已存有的 React Native。 Eu gosto de encapsular meu código em um diretório app
ou src
, ficando claro o que é “meu” o tempo todo。您可以简化项目的实际情况并减少混乱冲突的可能性。
米哈·菲洛索菲亚·索布雷·组件
在没有教程的情况下,您将使用该组件的所有组件,但该组件的接口通常适用于我的应用程序。正常情况下,我们会向爸爸展示一些不同的组件(a screen
)。
例如:您可以登录 com,其中包含 3 个文本和 botão。您可以理解为文本中的组件和数据的组成部分。使用数字文本/按压按钮,可以通过该按钮来传递信息screen
。
这是一种用于所有组件的方法。
“区域功能”组织
符合应用程序的要求,所有组件均适用。 À medida que seus componentes crescem em Complexidade, você vai querer dividi-los empartes menores, para que sejam mais fáceis de raciocinar e manter.
Como isso acontece,você pode acabar com um enorme diretório de Componentes! Isso pode ser bom - mesmo no meu exemplo abaixo, eu ainda acho aceitável。
# Grande lista de componentes
/components
TextInput.js
Switch.js
Button.js
List.js
ListItem.js
Loading.js
Calendar.js
CalendarItem.js
CardContainer.js
CardBodyImage.js
CardBodyText.js
Header.js
HeaderLeftButton.js
HeaderCenterContent.js
HeaderRightButton.js
...
Mas... pode ser difícil descobrir como todos se relacionam entre si.想象一下,您可以将卡片、图表、公式、列表等各个组件进行比较。Onde você coloca essas partses compartilhadas da lógica?
这是因为该区域的功能很深奥。 Vamos pegar o 示例 acima e 组织 um nível mais focado。
# Componentes organizados por área funcional
/components
/Form
TextInput.js
Switch.js
/List
List.js
ListItem.js
/Calendar
Calendar.js
CalendarItem.js
/Card
CardContainer.js
CardBodyImage.js
CardBodyText.js
/Header
Header.js
HeaderLeftButton.js
HeaderCenterContent.js
HeaderRightButton.js
Loading.js
Button.js
Adicionamos um nível de aninhamento,que ajuda os 组件的功能。 Nós sabemos o que está relacionado em um relance。
Agora,这些与组件相结合的详细信息,是直接的。方便。
Uma última coisa - eu gosto de fazer uma área 功能出口 uma API。我允许重新命名/重新设置为 coisas à vontade。这对index.js
导出组件至关重要。
// Form/index.js
import TextInput from './TextInput.js';
import Switch from './Switch.js';
export { TextInput, Switch };
Outro Benefício disso é que minhas 重要的其他特拉斯/组件圣reduzidas。有以下问题:
import TextInput from '../components/Form/TextInput';
import Switch from '../components/Form/Switch';
重要的是:
import { TextInput, Switch } from '../components/Form';
避免深切关注
集市上的广告很快。我建议您尝试做一些意大利面。 Elas podem se transformar em um grande ponto de dor de cabeça!
不一致导致混淆。混淆挑衅天网。 Não 呼唤天网。
Aqui está um 示例。 Vamos dizer que temos um conjunto de cores padrão config/colors.js
。 Para obter isso do nosso arquivo TextInput.js
, precisamos:
// TextInput.js
import colors from '../../config/colors.js';
Até aí tudo bem。 Mass se formos mais fundo, você começa a ficar com mais e mais ../../../...
.
O 主要的解决方案是解决所有问题,并全面指导您的工作。您可以轻松地进行操作。 3 e tenho que começar a contar。
Desconfie de aninhamento 深奥!
菲克·弗莱西韦尔
接下来,我们就可以灵活地使用 Ficar 了。 O que funciona para mim não funciona para você 100%。灵活。因此,我们可以使用 um diretório(um 公式,例如)。 Outras vezes não há razão (como um indicador de carregamento)。灵活地设置系统/重新安装应用程序和实施器!
按照节奏,修改各项决定。您可以体验主要的体验,并享受您的功能、舒适的环境。
Não gaste muito tempo se preocupando com aorganização do código “perfeito”。您可以在 10 分钟内或 10 小时内完成配置。