그냥 쉽게 HTML 블럭으로 이해하시면 좋습니다. 동적인 요소가 없다면 그냥 HTML 태그로만 구성하셔도 됩니다. 동적인 요소가 있다면 일반적으로
@* 컴포넌트가 페이지일 경우 라우터 경로를 표현할 수 있습니다. *@
@page "/"
@* 사용할 네임스페이스를 적어줍니다. 자주 쓰는 것은 `_Imports.razor`에 일괄 등록하면 편합니다 *@
@using Mapster
@* ComponentBase는 생략해도 됩니다. 생략할 경우 ComponentBase를 상속하게 됩니다.
ComponentBase를 상속받아 새로운 xxxComponentBase를 사용할 수도 있습니다. *@
@inherits ComponentBase
@* 개체를 주입할 수 있습니다.*@
@inject IJSRuntime JSRuntime
@* 제네릭 인자가 있을 경우 제네릭 유형을 표현할 수 있습니다. *@
@typeparam TValue
@{
// HTML 렌더링 전 렌더링 관련 사전 처리를 여기서 할 수 있습니다.
}
<tag>...</tag>
@code {
// 코드...
}
App.razor에서 @routeData 값을
Navlink등에서 받은 URI를 pages 상단에 @page "/" 등으로 표현한 경로에 일치하는게 있는지 확인 후
위에 언급하신 @body 부분에 해당 razor 파일을 렌더링합니다.
보통 저 @body는 app.razor에서 DefaultLayout 값으로 지정되는 레이아웃 파일에 들어있는 경우가 많지요.
이렇게 렌더링 된 페이지를 폴백 페이지인 _Host.cshtml과 _Layout.cshtml로 감싸게 되는 걸로 보입니다.
첨엔 그냥 오류라거나 이럴 때 쓰이는 페이지 같았는데,
css 격리를 사용 하지 않는 이상 범용 js 스크립트나 css는 _Host.cshtml에서 등록해서 쓰더라고요.