템플릿 파일은 각 하위 레이아웃 또는 페이지를 래핑한다는 점에서 레이아웃과 유사합니다. 경로 전체에서 지속적으로 상태를 유지하는 레이아웃과 달리 템플릿은 탐색 시(on Navigation) 각 하위 레이아웃에 대해 새 인스턴스를 만듭니다.
export default function Template({ children }: { children: React.ReactNode }) {
return <div>{children}</div>
}
흔하지는 않지만 원하는 경우 레이아웃 대신 템플릿을 선택할 수 있습니다.
props는 필수 이며 layout 과 같이 children 을 받습니다.
기본적으로 template.tsx는 서버 컴포넌트이지만 "use client"를 통해 클라이언트 컴포넌트로도 사용할 수 있습니다.
사용자가 template.tsx를 공유하는 경로를 탐색하면 컴포넌트의 새 인스턴스가 마운트되고, DOM 요소는 다시 생성되며, state 가 보존되지 않고, effect 는 다시 실행됩니다.
매번 리렌더링이 되고 싶으면 template.tsx 사용 아니면 layout.tsx 사용~