router-link에 의해 추가된 특수 css클래스를 a태그에 사용해보자.
TheNaveigation파일로 가서, hover와 active규칙에 새 선택자를 추가해준다.
router-link-active 클래스가 있는 a태그.
이 스타일을 해당 css클래스를 갖는 모든 a태그에 적용해야한다고 알린다.
a:hover,
a:active,
a.router-link-active { /*router-link-active클래스가 있는 a태그*/
color: #f1a80a;
border-color: #f1a80a;
background-color: #1a037e;
}
저장 후 확인해보면, 활성화되어있는 Users가 highlight 되어있다.
'Teams'를 누르면 Teams가 강조된다.
이렇게 현재 활성화된 링크가 어떤 링크인지 시각적으로 표시할 수 있다.
참고로, 여기 클래스가 두개 있다.
스타일링에 사용한 router-link-active와 router-link-exact-active가 있다.
둘의 차이점을 보자.
# router-link-active vs router-link-exact-active
'teams/teamsid' 이렇게 중첩되는 라우트가 있을 수도 있다.
router-link-exact-active : 현재 경로와 완벽하게 일치하는 내비게이션 항목에만 적용되고
router-link-active : 현재 활성화된 라우트의 일부만 포함하는 내비게이션 항목에도 적용된다는 차이점이 있다.
지금은 중첩 라우트가 없지만, 나중엔 뭐가 다른지 볼 수 있다.
지금 시점에선 애플리케이션 스타일링에 이런 클래스들이 도움이 된다는 정보만 알아두자.
# class명 변경
마음에 들지 않는다면 기본 클래스를 변경할 수도 있다.
라우터를 생성한 main.js를 보면 구성옵션이 더 많이 있다.
linkActiveClass와 linkExactActiveClass가 있는데
기본값인 router-link-active 클래스 대신, 그냥 'active'라고 해보자. 여기에 덮어쓰면 된다.
const router = createRouter({
history: createWebHistory(),
routes: [
{ path: '/teams', component: TeamsList },
{ path: '/users', component: UsersList },
],
linkActiveClass: 'active'
});
한번 확인해보자.
a태그로 'router-link-active'클래스 대신, active클래스를 선택해준다.
여기 있는 스타일링도 변경해줘야한다.
a:hover,
a:active,
a.active {
color: #f1a80a;
border-color: #f1a80a;
background-color: #1a037e;
}
확인해보면 똑같이 작동하고 있다.
router-link-active 클래스 대신, 'active'클래스가 추가되어있는걸 볼 수 있다.
이런 식으로도 구성할 수 있다.
** 출처: 모든 내용은 Udemy Vue-완벽가이드 강의를 기반으로 작성하였습니다.
'Vue.js' 카테고리의 다른 글
[Udemy Vue 완벽가이드 Section13] 173. 라우트 매개변수를 사용하여 데이터 전달하기(동적 세그먼트) (0) | 2023.09.24 |
---|---|
[Udemy Vue 완벽가이드 Section13] 172. 프로그래밍 방식 내비게이션 (0) | 2023.09.24 |
[Udemy Vue 완벽가이드 Section13] 170. router-link로 탐색하기 (0) | 2023.09.24 |
[Udemy Vue 완벽가이드 Section13] 169. 라우트 등록 및 렌더링 (0) | 2023.09.24 |
[Udemy Vue 완벽가이드 Section13] 168. 라우팅 설정 (0) | 2023.09.23 |