이번 포스트에서는 지난 시간에 새로 생성해 본 Livewire 4 컴포넌트를 routes/web.php에 라우팅 하고, 실제 웹사이트 메뉴에 연결하는 방법을 알아보겠다.
이전 포스트
Livewire 버전 4에서 컴포넌트 생성하기 (pages::articles.list 컴포넌트 생성)
LIVEWIRE pages::articles.list 컴포넌트 Route 및 메뉴(내비게이션)에 Articles 추가 · 4th-avenue/laravel13-livewire@8fcf17b · GitHub
전체적인 코드 수정은 이 깃허브 링크를 통해서 확인할 수 있다.
routes/web.php에서 라우팅 설정하기
Route::livewire('articles', 'pages::articles.list')
->name('articles.index');
반드시 정해진 위치가 있는 건 아니지만, 가장 아랫줄에 있는 require __DIR__.'/auth.php';의 윗부분에 이 코드를 추가했다.
Route::livewire('articles', ...): 브라우저 주소창에 입력하는 HTTP URL 패스(Path)다. http://localhost/articles 에 접근했을 때 이 라우트가 동작하게 된다.'pages::articles.list': 이 부분이 Livewire 4 라우팅의 핵심이다. 이전 버전처럼 임포트Import를 할 필요가 없다.pages::는 Livewire에게 이 컴포넌트는components/가 아니라pages/폴더 아래에 있는 풀 페이지 컴포넌트라고 알려주는 식별자다.articles.list는articles/디렉토리 안의list컴포넌트를 의미한다.->name('articles.index');: 라라벨의 기본 라우트 이름 지정 기능과 동일하다.
라라벨 web.php 라우팅 설정 및 CSRF 토큰을 활용한 글 작성 페이지 만들기
Livewire를 사용하지 않고 컨트롤러를 사용했었을 때, web.php 파일에 라우팅 설정을 하는 방법을 올렸던 포스트의 링크다.
resources/views/pages/articles/list.blade.php 파일에서 주석 처리되어 있었던 텍스트의 주석을 풀고, 브라우저에서 http://localhost/articles 에 접근해 보자.
이렇게 텍스트가 보이면 라우팅 설정을 성공적으로 끝낸 거다.
개인적으로 articles/list.blade.php 파일에 텍스트만 있는게 썰렁해보여서 대시보드 페이지와 똑같은 디자인으로 수정했다.
코드는 여기에는 굳이 올리지 않겠다.
layouts/navigation.blade.php에서 메뉴에 링크 달기
<!-- Navigation Links -->
<div class="hidden space-x-8 sm:-my-px sm:ms-10 sm:flex">
<x-nav-link :href="route('dashboard')" :active="request()->routeIs('dashboard')">
{{ __('Dashboard') }}
</x-nav-link>
<x-nav-link :href="route('articles.index')" :active="request()->routeIs('articles.*')">
{{ __('Articles') }}
</x-nav-link>
</div>
{{-- 생략 --}}
<div class="pt-2 pb-3 space-y-1">
<x-responsive-nav-link :href="route('dashboard')" :active="request()->routeIs('dashboard')">
{{ __('Dashboard') }}
</x-responsive-nav-link>
<x-responsive-nav-link :href="route('articles.index')" :active="request()->routeIs('articles.*')">
{{ __('Articles') }}
</x-responsive-nav-link>
</div>
각각 PC와 모바일 화면용 내비게이션 메뉴에 Articles로 이동하는 링크를 추가했다.
이제는 이렇게 내비게이션 메뉴에 Articles가 추가되었고, 클릭하면 Articles 페이지로 이동하게 된다.
원래 list.blade.php 화면은 작성된 게시글 목록을 보여주는 페이지지만, 현재는 DB에 저장된 데이터가 없는 상태다.
그러니 글목록을 표시하기 위해서는 글 저장 기능을 먼저 구축해야 한다.
다음 포스트에서는 글을 저장하는 역할을 하는 컴포넌트를 만들어 보겠다.
다음 포스트

0 Comments
댓글 쓰기
🔸 댓글은 블로그 운영자의 승인 후에 블로그에 표시됩니다.
🔸 비로그인 방문자 분께서는 '익명'보다 이름/URL로 댓글을 남겨주시면 감사하겠습니다. (URL은 생략 가능합니다.)
🔸 구글 로그인 방문자는 '알림 사용'에 체크를 하시면, 남겨주신 댓글에 대한 답글 알림을 메일로 받아볼 수 있습니다. 📩