diff --git a/README.md b/README.md index 5435984..45c6632 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,76 @@ # bio_frontend ## NUXT 3 (VUE 3) 환경 - - data-list 와 dataList는 동일 변수명으로 인식 - - compnenets 아래의 .vue는 자동 인식(template 내부에서만, 별도 script에서 필요시 선언 필요) +- data-list 와 dataList는 동일 변수명으로 인식 +- compnenets 아래의 .vue는 자동 인식(template 내부에서만, 별도 script에서 필요시 선언 필요) # 구성 요소 + ## components 구성 + +### 폴더 구조 + ``` -components - |- base // 기본 요소(button, input, grid, popup) - |- layout // 레이아웃 요소(header, footer, sidebar, wrapper) - |- module // 특정 기능 단위(card, form, list) - |- pages // 특정 페이지 전용 +components/ +├── base/ // 기본 UI 요소 (접두사 없이 사용) +│ ├── button/ +│ │ ├── CommonButton.vue +│ │ └── PermissionButton.vue +│ ├── grid/ +│ │ └── ToastGrid.vue +│ ├── info/ +│ │ └── PageDescription.vue +│ ├── loading/ +│ │ └── GlobalLoading.vue +│ └── popup/ +│ └── CommonPopup.vue +├── layout/ // 레이아웃 요소 (접두사 없이 사용) +│ ├── navigation/ +│ │ ├── AppHeader.vue +│ │ ├── SubMenuBar.vue +│ │ └── TabBar.vue +│ └── wrapper/ +│ ├── ContentsWrapper.vue +│ └── PopupWrapper.vue +└── domain/ // 도메인별 기능 컴포넌트 (@domain/ 접두사 사용) + └── culture-graph/ + ├── BatchGraph.vue + ├── BatchTabs.vue + └── CustomContextMenu.vue ``` +### 자동 임포트 설정 (nuxt.config.ts) + +```typescript +components: [ + { path: "~/components/base", pathPrefix: false }, // @base/ 접두사 제거 + { path: "~/components/layout", pathPrefix: false }, // @layout/ 접두사 제거 + { path: "~/components/domain", pathPrefix: true }, // @domain/ 접두사 유지 +], +``` + +### 컴포넌트 사용법 + +- **base/**, **layout/** 폴더의 컴포넌트\*\*: 접두사 없이 직접 사용 + + ```vue + + ``` + +- **domain/** 폴더의 컴포넌트: `@domain/` 접두사 사용 + ```vue + + ``` + ## page 구성 + ``` pages // 단일 화면(비 탭 요소) |- popup // 팝업 요소 @@ -25,7 +80,9 @@ pages // 단일 화면(비 탭 요소) ``` # page(페이지) 생성 요소 + ## 공통 페이지 구성 + ```