# bio_frontend ## NUXT 3 (VUE 3) 환경 - data-list 와 dataList는 동일 변수명으로 인식 - compnenets 아래의 .vue는 자동 인식(template 내부에서만, 별도 script에서 필요시 선언 필요) # 구성 요소 ## components 구성 ``` components |- base // 기본 요소(button, input, grid, popup) |- layout // 레이아웃 요소(header, footer, sidebar, wrapper) |- module // 특정 기능 단위(card, form, list) |- pages // 특정 페이지 전용 ``` ## page 구성 ``` pages // 단일 화면(비 탭 요소) |- popup // 팝업 요소 |- [tabId] // 탭 요소 |- admin // 관리자 페이지 ``` # page(페이지) 생성 요소 ## 공통 페이지 구성 ``` ``` ## Toast(Tui) Grid 사용법 한글 설명: https://github.com/nhn/tui.grid/blob/master/packages/toast-ui.grid/docs/v4.0-migration-guide-kor.md ### 기본 설정 ``` ``` ## tree data ``` ``` ## 팝업 구성 ``` ┌─────────────────────────────┐ │ customPopup.vue │ │ ┌─────────────────────────┐ │ │ │ poupWrapper.vue │ │ │ │ ┌─────────────────────┐ │ │ │ │ │ │ │ │ │ │ └─────────────────────┘ │ │ │ └─────────────────────────┘ │ └─────────────────────────────┘ customPopup.vue - 기본 빈 팝업 poupWrapper.vue - top, middle, bottom으로 구성된 팝업 구조 1. 구조에 따라 customPopup, poupWrapper 기반으로 팝업 생성(/pages/popup/*.vue) 2. 사용할 페이지에서 생성한 팝업 추가 ``` ### 팝업 생성 ``` // examplePopup.vue ``` ### 팝업 사용 ``` ``` ## 탭 구성 ``` // layouts/default.vue // stores/tab.ts import { useTabsStore } from "../stores/tab"; const tabsStore = useTabsStore(); // 탭추가 (최대 10개) tabsStore.addTab(); // 탭 갱신 tabsStore.updateActiveTab({ label, to, componentName}); // 탭 변경 tabsStore.setActiveTab(key); // 탭 생성
{{ tab.label }} ×
```