블로그 메뉴

    Tonkatsu
    Developer Lee
    Tonkatsu
    전체 방문자
    오늘
    어제
    • 분류 전체보기 (52)
      • Frontend (7)
        • React (3)
        • JavaScript (3)
        • HTML\CSS (1)
        • etc (0)
      • Backend (0)
        • Python\Django (0)
        • etc (0)
      • CS (32)
        • Algorithm\Coding Test (19)
        • Computer Science (8)
        • devops (5)
        • etc (0)
      • Languages (5)
        • Javascript (5)
        • Python (0)
        • etc (0)
      • 비상다반 (3)
      • 학원 (4)

    인기 글

    태그

    • leetcode
    • 리트코드
    • Push
    • javascript
    • 백준
    • HTML
    • 코테
    • DFS
    • 자바스크립트
    • BFS
    • 코딩테스트
    • 네트워크
    • js
    • CS
    • merge
    • 프론트엔드
    • fetch
    • Git
    • 프로그래머스
    • CSS

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    Tonkatsu

    Developer Lee

    React Router Dom V6 변경점-NavLink
    Frontend/React

    React Router Dom V6 변경점-NavLink

    2022. 1. 29. 14:39

     

    리액트 라우터의 Link와 NavLink는 둘 다 새로고침 없이 URL을 변경해주는 역할을 한다.

    그 중 NavLink는 해당하는 링크에서 스타일과 같은 특성을 바꿀 수 있게 해준다.

     

    예를 들면 홈 화면에서는 이런 메뉴바가

     

     

    News를 선택하면 그 부분의 스타일만 변경된다.

     

     

    이런 NavLink도 리액트 라우터 돔이 V5 => V6로 업그레이드 되면서 변경점이 있다.

     

    1. activeClassName, activeStyle 삭제

     

    activeClassName과 activeStyle은 해당하는 NavLink가 선택되었을 때 알아서 클래스명을 추가하거나 스타일을 활성화하는 기능이다.

    하지만 리액트 라우터가 V6로 올라오면서 삭제되었다.

    따라서 다른 방식으로 클래스를 추가해 주어야한다.

     

    • className
    // V5
    <NavLink
      to="tasks"
      activeClassName='selected'
    >
    Tasks
    </NavLink>
    
    // V6
    // 삼항연산자로 selected라는 클래스를 직접 추가해줘야한다.
    <NavLink
      to="tasks"
      className={({ isActive }) =>
        isActive ? 'selected' : ''
      }
    >
    Tasks
    </NavLink>

     

    • style
    // V5
    <NavLink
      to="messages"
      activeStyle={{ color: 'green' }}
    >
    Messages
    </NavLink>
    
    // V6
    // 마찬가지로 삼항 연산자를 사용해서 스타일을 지정해줘야한다.
    <NavLink
      to="messages"
      style={({ isActive }) => 
        ({ color: isActive ? 'orange' : 'black' })
      }
    >
    Messages
    </NavLink>
    저작자표시 (새창열림)

    'Frontend > React' 카테고리의 다른 글

    React Router Dom V6 : nested routes  (2) 2022.02.26
    React Router Dom V6 변경점-Switch, Route  (0) 2022.01.27
      'Frontend/React' 카테고리의 다른 글
      • React Router Dom V6 : nested routes
      • React Router Dom V6 변경점-Switch, Route
      Tonkatsu
      Tonkatsu
      한 번 뿐인 인생 편하게 살고싶지만 그러려면 열심히 살아야 되니까 열심히 살려고 노력은 하지만 편하게 사는 사람

      티스토리툴바