Responses 응답
Creating responses 응답 생성하기
Inertia 응답을 생성하는 것은 간단합니다. 시작하려면, 컨트롤러나 라우트 내에서 Inertia::render()
메소드를 호출하고, 렌더링하고자 하는 JavaScript 페이지 컴포넌트의 이름과 페이지에 대한 props(데이터)를 제공하면 됩니다.
아래 예제에서, 단일 prop(event
)을 Event/Show
페이지 컴포넌트에 전달합니다. 이 prop에는 네 개의 속성(id
, title
, start_date
, description
)이 포함됩니다.
use Inertia\Inertia;
class EventsController extends Controller
{
public function show(Event $event)
{
return Inertia::render('Event/Show', [
'event' => $event->only(
'id',
'title',
'start_date',
'description'
),
]);
// 또는, inertia() 헬퍼를 사용할 수 있습니다...
return inertia('Event/Show', [
'event' => $event->only(
'id',
'title',
'start_date',
'description'
),
]);
}
}
라라벨(Laravel) 애플리케이션에서 Event/Show
페이지는 일반적으로 resources/js/Pages/Event/Show.(js|vue|svelte)
파일에 해당합니다.
페이지가 빠르게 로드되도록, 페이지에 필요한 최소한의 데이터만 반환하세요. 또한, 컨트롤러에서 반환된 모든 데이터는 클라이언트 측에서 볼 수 있으므로, 민감한 정보는 생략하는 것이 중요합니다.
Root template data 루트 템플릿 데이터
애플리케이션의 루트 Blade 템플릿에서 prop 데이터에 액세스하고자 할 때가 있습니다. 예를 들어, 메타 설명 태그, 트위터 카드 메타 태그, 또는 페이스북 오픈 그래프 메타 태그를 추가하고 싶을 수 있습니다. 이 데이터는 $page
변수를 통해 액세스할 수 있습니다.
<meta name="twitter:title" content="{{ $page['props']['event']->title }}">
때때로 JavaScript 페이지/컴포넌트로 보내지 않을 데이터를 루트 템플릿에 제공하고 싶을 수도 있습니다. 이는 withViewData
메소드를 호출하여 수행할 수 있습니다.
return Inertia::render('Event', ['event' => $event])
->withViewData(['meta' => $event->meta]);
withViewData
메소드를 호출한 후에는 일반적으로 Blade 템플릿 변수에 액세스하는 것처럼 정의된 데이터에 액세스할 수 있습니다.
<meta name="description" content="{{ $meta }}">
Maximum response size 최대 응답 크기
클라이언트 측 히스토리 탐색을 가능하게 하기 위해, 모든 Inertia 서버 응답은 브라우저의 히스토리 상태에 저장됩니다. 그러나 일부 브라우저에서는 히스토리 상태에 저장할 수 있는 데이터의 크기에 한계가 있음을 유의해야 합니다.
예를 들어, Firefox 는 640k 문자의 크기 제한이 있으며, 이 한계를 초과하면 NS_ERROR_ILLEGAL_VALUE
오류가 발생합니다. 일반적으로 이는 애플리케이션 구축에 실제로 필요한 것보다 훨씬 많은 데이터입니다.
'프로그래밍 > Web' 카테고리의 다른 글
Laravel Inertia - Routing (0) | 2024.01.18 |
---|---|
Laravel Inertia - Redirects (0) | 2024.01.18 |
Laravel Inertia - Pages (0) | 2024.01.18 |
Laravel Inertia Client-side 설치 (0) | 2024.01.10 |
Laravel Inertia Server-side 설치 (0) | 2024.01.10 |
댓글