-
$router에 params 함께 전달하기Javascript/vue 2023. 4. 26. 18:03
$router.push() 를 사용하여 페이지를 이동, params 데이터를 함께 전달하자!
특정 버튼 클릭 시, 특정 페이지로 이동하는 로직을 적용하는 도중,
해당 페이지에 탭이 생겨버렸고...
1번 버튼 클릭 -> A 페이지 A-1 탭으로 이동
2번 버튼 클릭 -> A 페이지 A-2 탭으로 이동을 적용하기 위해,
현재 적용한 로직 $router.push에 params로 type값(A-1, A-2)을 넣어주기로 했다.
switch (key) { case '1번': { this.$router.push({ path: '/page/A', params: { type: 'A' } }) break; } case '2번': { this.$router.push({ path: '/page/A', params: { type: 'B' } }) break; } }
처음에 아무생각 없이 이렇게 수정했더니 안됨.
그래서 검색을 했더니,
params를 함께 전달하기 위해서는 path로 넘기면 안되고 name으로 넘겨야 된다고 함!!!
switch (key) { case '1번': { this.$router.push({ name: 'GoodPage', params: { type: 'A' } }) break; } case '2번': { this.$router.push({ name: 'GoodPage', params: { type: 'B' } }) break; } }
그래서 또 name으로 수정함.
근데 또 안됨. ㅋㅋ
바보가..
router에 name을 정의해주지 않았는데 $router가 어떻게 알고 name을 찾아갈까!
// router.js const router = [ ... { name: 'GoodPage', path: '/page/A', component: () => import('...') } ]
이렇게 router 수정해주고 실행하니까
params 아주 잘 들어감!!
'Javascript > vue' 카테고리의 다른 글
Composition API (0) 2024.03.12 단일 파일 컴포넌트의 활용 (0) 2024.03.12 Vue 인스턴스 (0) 2024.03.06 VUE3 + Typescript 시작하기 (0) 2023.07.11 [Bootstrap] Table - Filter (0) 2022.03.15