
<page-heder>
<page-title :title="pageTitle" />
<breadcrumbs />
<page-nav />
</page-heder>
- AdminLayout
- PageHeader
- PageTitle
- Breadcrumbs
- PageNav
PageHeader 는 페이지 상단 공통 영역에서 필요한 컴포넌트 조립용 wrapper 용도기 때문에 slot 역할만 하고 끝. PageTitle 은 title 값만 props 로 내려주고 끝.node : object 객체tree : node[] (전체 트리)routes : node[] (경로 배열)siblings : node[] (형제 노드 배열)getTreeNodeUrlparentId 를 이용한다. ➡ getRoutesgetRouterLinkPageNav 의 탭 또는 Breadcrumbs 의 드롭다운 컴포넌트에 필요한 형제 노드 배열을 얻기 위해, 해당 페이지 노드의 parentId 가 있을 경우는 부모의 자식 목록을 찾고, 없을 경우는 가장 상위 배열을 반환한다. ➡ getSiblingsFunctionsgetTreeNodeUrl ( url: string, tree ) => nodetree 내 해당 노드 객체 검색getTreeNodeId ( id: number, tree ) => nodenode 의 id 값으로 tree 내 해당 노드 객체 검색getRoutes ( node, tree ) => routenode 의 parentId 값을 타고 올라가 경로 배열 출력getSiblings ( node ) => node[]node 의 형제 노드를 배열로 출력getRouterLink ( node ) => stringnode 의 첫번째 자식을 타고 내려가 URL 출력PageNav 에서 필요한것
Breadcrumbs 에서 필요한것
남은 과제
- 여러 컴포넌트에 동일한 함수가 중복 생성되어 리팩토링 필요
- e.g.
props.routesvsstate.menuRoutesprops 이슈- GNB Sidemenu 컴포넌트도 재가공 필요
