React 101: 디렉토리 구조
5644 단어 reactarchitecturebeginners
문맥
React 기반 애플리케이션을 만드는 것은 React가 특정 디렉토리 구조를 제공하지 않기 때문에 어려울 수 있습니다. 많은 사람들이 자신의 구조를 가지고 있습니다. 그들처럼 나도 내 생각이 있다.
구성 요소 계층
용도에 따라 구성 요소를 봅니다. 일반적으로 공통, 기능 및 페이지의 세 가지 유형의 구성 요소가 있습니다.
공통 구성 요소는
Button
, Modal
, Accordion
등과 같이 일반적인 방식으로 사용할 수 있는 구성 요소입니다. 이러한 구성 요소는 응용 프로그램의 빌딩 블록을 의미합니다.기능 구성 요소는 특정 기능에서 사용하는 구성 요소입니다. 기능을 사용자에게 제공하는 제품으로 볼 수 있습니다. 기능 구성 요소는
Authentication
, User
등일 수 있습니다.마지막으로 페이지 구성 요소는 사용자가 귀하의 기능과 공통 구성 요소를 사용할 수 있도록 하는 구성 요소입니다.
Settings
, Profile
등이 될 수 있습니다.종속성
세 가지 유형의 구성 요소에는 서로 상호 작용할 수 있는 방법에 대한 일련의 규칙이 있습니다.
흔한
특징
페이지
흔한
✅
특징
✅
✅ 동일한 기능인 경우
페이지
✅
✅
✅ 같은 페이지인 경우
✅ - can use component
규칙에 대한 추론은 서로 다른 계층의 특수성 간에 관심사를 분리하기를 원하기 때문입니다. 응용 프로그램이 커지면서 알게 된 사실은 많은 구성 요소가 다른 위치에 얽혀 있다는 것입니다.
다음 세 계층을 구조화하면 다음과 같은 이점이 있습니다.
import { Button } from "@common/Button";
import { Dropdown } from "@common/Dropdown";
import { UserAvatar } from "@features/User/components/UserAvatar";
예시:
app/
|-- common/
|-- Layout/
|-- __tests__/
|-- stories/
|-- index.ts
|-- Layout.tsx
|-- Layout.scss
|-- Button/
|-- __tests__/
|-- stories/
|-- index.ts
|-- Button.tsx
|-- Button.scss
|-- Modal/
|-- __tests__/
|-- stories/
|-- components/
|-- ModalHeader/
|-- index.ts
|-- ModalHeader.tsx
|-- ModalHeader.scss
|-- ModalContent/
|-- index.ts
|-- ModalContent.tsx
|-- ModalContent.scss
|-- ModalFooter/
|-- index.ts
|-- ModalFooter.tsx
|-- ModalFooter.scss
|-- index.ts
|-- Modal.tsx
|-- Modal.scss
|-- features/
|-- User/
|-- __tests__/
|-- stories/
|-- components/
|-- UserAvatar/
|-- __tests__/
|-- stories/
|-- index.ts
|-- UserAvatar.ts
|-- UserAvatar.scss
|-- hooks/
|-- useUser.ts
|-- useUserMutations.ts
|-- constants.ts
|-- helpers.ts
|-- pages/
|-- Settings/
|-- __tests__/
|-- components/
|-- UserTab/
|-- __tests__/
|-- stories/
|-- index.ts
|-- UserTab.tsx
|-- UserTab.scss
|-- index.ts
|-- Settings.tsx
|-- Settings.scss
구조 내에 존재할 수 있는 다른 파일/디렉토리는 다음과 같습니다.
__tests__
contexts
constants
helpers
hooks
stories
index.ts가 필요한 이유
엔지니어가 필요한 것을 훨씬 더 쉽게 찾을 수 있도록 실제 구현을 위한 명명된 파일이 있는 동안 구성 요소에 대한 진입점으로
index.ts
를 사용합니다.// without index.ts
import { Button } from "@common/Button/Button";
// with index.ts
import { Button } from "@common/Button";
약점
다른 디렉토리 구조와 마찬가지로 완벽하지 않습니다. 이 디렉토리 구조는 귀하의 팀이 귀하가 기능으로 고려할 항목을 결정해야 한다는 점에서 독단적입니다. 예를 들어
User
는 UserProfile
와 다른가요? UserProfile
는 User
아래에 살 수 있습니다.사람들이 좋아하지 않을 수 있는 또 다른 약점은 디렉토리가 얼마나 중첩될 수 있는지입니다.
결론
이 디렉터리 구조는 응용 프로그램을 구조화하는 의미 체계를 갖기 위한 것입니다. 이것이 전부이고 최종적인 솔루션이 되는 것은 아닙니다. 그것은 단순히 의미가 있고 저에게 효과가 있었던 솔루션입니다.
이 디렉토리의 특정 측면이 마음에 들고 채택하고 싶다면; 어떻게 채택할 계획인지 댓글로 알려주세요. 마음에 들지 않거나 개선 방법에 대한 제안이 있으면 의견에 알려주십시오.
참조
https://reactjs.org/docs/faq-structure.html
Reference
이 문제에 관하여(React 101: 디렉토리 구조), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/koralarts/react-101-directory-structure-28mi텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)