우선 동적 라우팅에 대해 알기 전에 어떤 리스트가 있다면 그 중 클릭한게 무엇인줄 알고 넘어가는가에 대해 의문을 가질 수 있다.. ❓
지금 하고 있는 프로젝트의 Route.js
를 봐보자 !
코드를 보면 exact path
를 통해 정해진 component로 이동하게 되어있다.
Route
의 경로에 특정 값을 넣어 해당 페이지로 이동할 수 있게 하는 것 (Dynamic Routing)
- history
- 이 객체를 통해 push, replace 를 통해 다른 경로로 이동하거나 앞 뒤 페이지로 전환 할 수 있다!
- class를 사용했을 때
this.props.history.push('/page')
를 통해 이동할 수 있었던 이유 !
- location
- 이 객체는 현재 경로에 대한 정보를 지니고 있고, URL 쿼리 (/company_list?category=3)에 대한 정보도 가지고 있습니다.
- match
- 이 객체에는 어떤 라우트에 매칭이 되었는지에 대한 정보가 있고 params (/company_detail/:id) 정보를 가지고있습니다.
❓만약 /Main 뒤에 ?category=3이 붙어 /Main?category=3
이라면 무슨 뜻 일까요
즉, 로그인 성공 시
/Main?category=3
주소의 URL로 이동하도록 설정되어 있는 것은 처음 메인 화면 진입 시에 해당하는 데이터를 화면에 보여주겠다는 뜻
❓ location
- 이 객체는 현재 경로에 대한 정보를 지니고 있고, URL 쿼리 (/Main?category=3)에 대한 정보도 가지고 있습니다.
❓ match
- 이 객체에는 어떤 라우트에 매칭이 되었는지에 대한 정보가 있고 params (/company_detail/:id) 정보를 가지고있습니다.
🚨 주의) URL 쿼리의 경우엔 컴포넌트 내에서 동적으로 사용 할 수 있고, params 의 경우엔 사용하기 전에 꼭 라우트에서 지정을 해주어야합니다.
/users // 사용자 전체의 목록을 가져온다.
/users/123 // id 값이 123인 사용자를 가져온다.
/users?job=programer // 필터링 >>> 직업이 프로그래머인 사용자 목록만 가져온다.