@@ -7,11 +7,11 @@ title="Learn how to add routes at runtime"
7
7
8
8
๋ผ์ฐํฐ์ ๋ผ์ฐํธ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก ` routes ` ์ต์
์ ํตํด ์ด๋ฃจ์ด์ง์ง๋ง, ์ ํ๋ฆฌ์ผ์ด์
์ด ์ด๋ฏธ ์คํ ์ค์ธ ์ํฉ์์ ๋ผ์ฐํธ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ์๋ ์์ต๋๋ค. [ Vue CLI UI] ( https://cli.vuejs.org/dev-guide/ui-api.html ) ์ ๊ฐ์ ํ์ฅ ๊ฐ๋ฅํ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ง ์ ํ๋ฆฌ์ผ์ด์
์ ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์
์ ์ฑ์ฅ์ํฌ ์ ์์ต๋๋ค.
9
9
10
- ## ๊ฒฝ๋ก ์ถ๊ฐํ๊ธฐ %{#adding-routes}%
10
+ ## ๋ผ์ฐํธ ์ถ๊ฐํ๊ธฐ %{#adding-routes}%
11
11
12
- ๋์ ๋ผ์ฐํ
์ ์ฃผ๋ก ` router.addRoute() ` ์ ` router.removeRoute() ` ๋ ๊ฐ์ ํจ์๋ก ๊ตฌํ๋ฉ๋๋ค. ์ด๊ฒ๋ค์ ์ ๊ฒฝ๋ก๋ง ๋ฑ๋กํ๋ฏ๋ก, ์๋ก ์ถ๊ฐ๋ ๊ฒฝ๋ก๊ฐ ํ์ฌ ์์น์ ์ผ์นํ๋ ๊ฒฝ์ฐ, ์ ๊ฒฝ๋ก๋ฅผ ํ์ํ๋ ค๋ฉด ` router.push() ` ๋๋ ` router.replace() ` ๋ฅผ ์ฌ์ฉํ์ฌ ** ์๋์ผ๋ก ํ์** ํด์ผ ํฉ๋๋ค.
12
+ ๋์ ๋ผ์ฐํ
์ ์ฃผ๋ก ` router.addRoute() ` ์ ` router.removeRoute() ` ๋ ๊ฐ์ ํจ์๋ก ๊ตฌํ๋ฉ๋๋ค. ์ด๊ฒ๋ค์ ์ ๋ผ์ฐํธ๋ง ๋ฑ๋กํ๋ฏ๋ก, ์๋ก ์ถ๊ฐ๋ ๋ผ์ฐํธ๊ฐ ํ์ฌ ์์น์ ์ผ์นํ๋ ๊ฒฝ์ฐ, ์ ๋ผ์ฐํธ๋ฅผ ํ์ํ๋ ค๋ฉด ` router.push() ` ๋๋ ` router.replace() ` ๋ฅผ ์ฌ์ฉํ์ฌ ** ์๋์ผ๋ก ํ์** ํด์ผ ํฉ๋๋ค.
13
13
14
- ๋ค์์ ๋ผ์ฐํฐ์ ํ๋์ ๋จ์ผ ๊ฒฝ๋ก๋ง ์๋ค๊ณ ๊ฐ์ ํด ๋ด
์๋ค:
14
+ ๋ค์์ ๋ผ์ฐํฐ์ ํ๋์ ๋จ์ผ ๋ผ์ฐํธ๋ง ์๋ค๊ณ ๊ฐ์ ํด ๋ด
์๋ค:
15
15
16
16
``` js
17
17
const router = createRouter ({
@@ -20,7 +20,7 @@ const router = createRouter({
20
20
})
21
21
```
22
22
23
- ๋ชจ๋ ํ์ด์ง ` /about ` , ` /store ` , ` /3-tricks-to-improve-your-routing-code ` ๊ฐ ๊ฒฐ๊ตญ ` Article ` ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ` /about ` ์ ์๊ณ ์ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ:
23
+ ๋ชจ๋ ํ์ด์ง ` /about ` , ` /store ` , ` /3-tricks-to-improve-your-routing-code ` ๊ฐ ๊ฒฐ๊ตญ ` Article ` ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ` /about ` ์ ์๊ณ ์ ๋ผ์ฐํธ๋ฅผ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ:
24
24
25
25
``` js
26
26
router .addRoute ({ path: ' /about' , component: About })
@@ -34,11 +34,11 @@ router.addRoute({ path: '/about', component: About })
34
34
router .replace (router .currentRoute .value .fullPath )
35
35
```
36
36
37
- ์ ๊ฒฝ๋ก๊ฐ ํ์๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ ๊ฒฝ์ฐ, ` await router.replace() ` ํ ์ ์์์ ๊ธฐ์ตํฉ์๋ค.
37
+ ์ ๋ผ์ฐํธ๊ฐ ํ์๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ ๊ฒฝ์ฐ, ` await router.replace() ` ํ ์ ์์์ ๊ธฐ์ตํฉ์๋ค.
38
38
39
- ## ๋ค๋น๊ฒ์ด์
๊ฐ๋ ๋ด๋ถ์์ ๊ฒฝ๋ก ์ถ๊ฐํ๊ธฐ %{#adding-routes-inside-navigation-guards}%
39
+ ## ๋ค๋น๊ฒ์ด์
๊ฐ๋ ๋ด๋ถ์์ ๋ผ์ฐํธ ์ถ๊ฐํ๊ธฐ %{#adding-routes-inside-navigation-guards}%
40
40
41
- ๋ค๋น๊ฒ์ด์
๊ฐ๋ ๋ด๋ถ์์ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๋ฉด, ` router.replace() ` ๋ฅผ ํธ์ถํ์ง ๋ง๊ณ ์ ์์น๋ฅผ ๋ฐํํ๋ ๋ฆฌ๋๋ ์
์ ํธ๋ฆฌ๊ฑฐํด์ผ ํฉ๋๋ค:
41
+ ๋ค๋น๊ฒ์ด์
๊ฐ๋ ๋ด๋ถ์์ ๋ผ์ฐํธ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๋ฉด, ` router.replace() ` ๋ฅผ ํธ์ถํ์ง ๋ง๊ณ ์ ์์น๋ฅผ ๋ฐํํ๋ ๋ฆฌ๋๋ ์
์ ํธ๋ฆฌ๊ฑฐํด์ผ ํฉ๋๋ค:
42
42
43
43
``` js
44
44
router .beforeEach (to => {
@@ -50,46 +50,46 @@ router.beforeEach(to => {
50
50
})
51
51
```
52
52
53
- ์์ ์๋ ๋ ๊ฐ์ง๋ฅผ ๊ฐ์ ํฉ๋๋ค: ์ฒซ ๋ฒ์งธ๋ก ์๋ก ์ถ๊ฐ๋ ๊ฒฝ๋ก ๋ ์ฝ๋๋ ` to ` ๊ฒฝ๋ก์ ์ผ์นํ์ง๋ง, ์ค์ ๋ก ์ ๊ทผํ๋ ค๋ ์์น๊ฐ ์๋ก ์ถ๊ฐ๋ ๊ฒฝ๋ก ์์น์ ๋ค๋ฆ. ๋ ๋ฒ์งธ๋ก ` hasNecessaryRoute() ` ๋ ๋ฌดํ ๋ฆฌ๋๋ ์
์ ๋ฐฉ์งํ๊ธฐ ์ํด, ์ ๊ฒฝ๋ก ์ถ๊ฐ ํ์๋ ` false ` ๋ฐํ.
53
+ ์์ ์๋ ๋ ๊ฐ์ง๋ฅผ ๊ฐ์ ํฉ๋๋ค: ์ฒซ ๋ฒ์งธ๋ก ์๋ก ์ถ๊ฐ๋ ๋ผ์ฐํธ ๋ ์ฝ๋๋ ` to ` ๋ผ์ฐํธ์ ์ผ์นํ์ง๋ง, ์ค์ ๋ก ์ ๊ทผํ๋ ค๋ ์์น๊ฐ ์๋ก ์ถ๊ฐ๋ ๋ผ์ฐํธ ์์น์ ๋ค๋ฆ. ๋ ๋ฒ์งธ๋ก ` hasNecessaryRoute() ` ๋ ๋ฌดํ ๋ฆฌ๋๋ ์
์ ๋ฐฉ์งํ๊ธฐ ์ํด, ์ ๋ผ์ฐํธ ์ถ๊ฐ ํ์๋ ` false ` ๋ฐํ.
54
54
55
55
ํ์์ ๋์ฒดํ๋ ๋ฐฉ์์ผ๋ก ๋ฆฌ๋๋ ์
ํ๋ ๊ฒ์ผ๋ก, ์์ ์ค๋ช
ํ ` router.replace() ` ์์ ์ ๊ฐ์ ๋์์
๋๋ค. ์ค์ ์๋๋ฆฌ์ค์์๋ ๋ค๋น๊ฒ์ด์
๊ฐ๋ ์ธ๋ถ์์ ๋ทฐ ์ปดํฌ๋ํธ๊ฐ ๋ง์ดํธ๋๋ฉด, ์ด๋ฌํ ๋์์ ์ฒ๋ฆฌํด์ผ ํ ์๋ ์์ต๋๋ค.
56
56
57
- ## ๊ฒฝ๋ก ์ ๊ฑฐํ๊ธฐ %{#removing-routes}%
57
+ ## ๋ผ์ฐํธ ์ ๊ฑฐํ๊ธฐ %{#removing-routes}%
58
58
59
- ์กด์ฌํ๋ ๊ฒฝ๋ก๋ฅผ ์ ๊ฑฐํ๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค:
59
+ ์กด์ฌํ๋ ๋ผ์ฐํธ๋ฅผ ์ ๊ฑฐํ๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค:
60
60
61
- - ๊ฐ์ ` name ` ์ ๊ฐ์ง๋ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํฉ๋๋ค. ` name ` ์ด ์ค๋ณต๋ ๊ฒฝ์ฐ, ๊ธฐ์กด ๊ฒฝ๋ก๋ฅผ ์ ๊ฑฐํ ํ์ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํฉ๋๋ค.
61
+ - ๊ฐ์ ` name ` ์ ๊ฐ์ง๋ ๋ผ์ฐํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ` name ` ์ด ์ค๋ณต๋ ๊ฒฝ์ฐ, ๊ธฐ์กด ๋ผ์ฐํธ๋ฅผ ์ ๊ฑฐํ ํ์ ๋ผ์ฐํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
62
62
63
63
``` js
64
64
router .addRoute ({ path: ' /about' , name: ' about' , component: About })
65
- // ์ด์ ์ ์ถ๊ฐ๋ ๊ฒฝ๋ก๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
66
- // ์ด๋ ๊ทธ๋ค์ด ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๋ชจ๋ ๊ฒฝ๋ก์์ ์ด๋ฆ์ด ๊ณ ์ ํ๊ธฐ ๋๋ฌธ์
๋๋ค.
65
+ // ์ด์ ์ ์ถ๊ฐ๋ ๋ผ์ฐํธ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
66
+ // ์ด๋ ๊ทธ๋ค์ด ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๋ชจ๋ ๋ผ์ฐํธ์์ ์ด๋ฆ์ด ๊ณ ์ ํ๊ธฐ ๋๋ฌธ์
๋๋ค.
67
67
router .addRoute ({ path: ' /other' , name: ' about' , component: Other })
68
68
```
69
69
70
70
- ` router.addRoute() ` ๊ฐ ๋ฐํํ ์ฝ๋ฐฑ์ ํธ์ถ:
71
71
72
72
``` js
73
73
const removeRoute = router .addRoute (routeRecord)
74
- removeRoute () // ๊ฒฝ๋ก๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ ์ ๊ฑฐํจ.
74
+ removeRoute () // ๋ผ์ฐํธ๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ ์ ๊ฑฐํจ.
75
75
```
76
76
77
- ` name ` ์ด ์๋ ๊ฒฝ๋ก์ผ ๊ฒฝ์ฐ์ ์ ์ฉํฉ๋๋ค.
78
- - ` router.removeRoute() ` ์ ` name ` ๋ฌธ์์ด์ ์ธ์๋ก ์ ๋ฌํด ๊ฒฝ๋ก๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
77
+ ` name ` ์ด ์๋ ๋ผ์ฐํธ์ผ ๊ฒฝ์ฐ์ ์ ์ฉํฉ๋๋ค.
78
+ - ` router.removeRoute() ` ์ ` name ` ๋ฌธ์์ด์ ์ธ์๋ก ์ ๋ฌํด ๋ผ์ฐํธ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
79
79
80
80
``` js
81
81
router .addRoute ({ path: ' /about' , name: ' about' , component: About })
82
- // ๊ฒฝ๋ก๋ฅผ ์ ๊ฑฐํจ.
82
+ // ๋ผ์ฐํธ๋ฅผ ์ ๊ฑฐํจ.
83
83
router .removeRoute (' about' )
84
84
```
85
85
86
- ๊ฒฝ๋ก์ ` name ` ์ ` Symbol ` ์ ์ฌ์ฉํ๋ฉด, ๊ฒฝ๋ก๊ฐ ` name ` ์ ์ถฉ๋์ ํผํ ์ ์์ต๋๋ค.
86
+ ๋ผ์ฐํธ์ ` name ` ์ ` Symbol ` ์ ์ฌ์ฉํ๋ฉด, ๋ผ์ฐํธ๊ฐ ` name ` ์ ์ถฉ๋์ ํผํ ์ ์์ต๋๋ค.
87
87
88
- ๊ฒฝ๋ก๊ฐ ์ ๊ฑฐ๋๋ฉด ** ๋ชจ๋ ๋ณ์นญ๊ณผ ์์** ๋ ํจ๊ป ์ ๊ฑฐ๋ฉ๋๋ค.
88
+ ๋ผ์ฐํธ๊ฐ ์ ๊ฑฐ๋๋ฉด ** ๋ชจ๋ ๋ณ์นญ๊ณผ ์์** ๋ ํจ๊ป ์ ๊ฑฐ๋ฉ๋๋ค.
89
89
90
- ## ์ค์ฒฉ ๊ฒฝ๋ก ์ถ๊ฐํ๊ธฐ %{#adding-nested-routes}%
90
+ ## ์ค์ฒฉ ๋ผ์ฐํธ ์ถ๊ฐํ๊ธฐ %{#adding-nested-routes}%
91
91
92
- ์ค์ฒฉ๋ ๊ฒฝ๋ก๋ฅผ ๊ธฐ์กด ๊ฒฝ๋ก์ ์ถ๊ฐํ๋ ค๋ฉด, ๊ฒฝ๋ก์ ` name ` ์ ์ฒซ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ก ` router.addRoute() ` ์ ์ ๋ฌํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ฒฝ๋ก๊ฐ ` children ` ์ ํตํด ์ถ๊ฐ๋ ๊ฒ์ฒ๋ผ ๊ฐํธํ๊ฒ ์ถ๊ฐ๋ฉ๋๋ค:
92
+ ์ค์ฒฉ๋ ๋ผ์ฐํธ๋ฅผ ๊ธฐ์กด ๋ผ์ฐํธ์ ์ถ๊ฐํ๋ ค๋ฉด, ๋ผ์ฐํธ์ ` name ` ์ ์ฒซ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ก ` router.addRoute() ` ์ ์ ๋ฌํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ผ์ฐํธ๊ฐ ` children ` ์ ํตํด ์ถ๊ฐ๋ ๊ฒ์ฒ๋ผ ๊ฐํธํ๊ฒ ์ถ๊ฐ๋ฉ๋๋ค:
93
93
94
94
``` js
95
95
router .addRoute ({ name: ' admin' , path: ' /admin' , component: Admin })
@@ -107,9 +107,9 @@ router.addRoute({
107
107
})
108
108
```
109
109
110
- ## ์กด์ฌํ๋ ๊ฒฝ๋ก ์ฐพ๊ธฐ %{#looking-at-existing-routes}%
110
+ ## ์กด์ฌํ๋ ๋ผ์ฐํธ ์ฐพ๊ธฐ %{#looking-at-existing-routes}%
111
111
112
- Vue Router๋ ์กด์ฌํ๋ ๊ฒฝ๋ก๋ฅผ ์ฐพ์๋ณผ ์ ์๋๋ก, ๋ ๊ฐ์ ํจ์๋ฅผ ์ ๊ณตํฉ๋๋ค:
112
+ Vue Router๋ ์กด์ฌํ๋ ๋ผ์ฐํธ๋ฅผ ์ฐพ์๋ณผ ์ ์๋๋ก, ๋ ๊ฐ์ ํจ์๋ฅผ ์ ๊ณตํฉ๋๋ค:
113
113
114
- - [ ` router.hasRoute() ` ] ( /api/interfaces/Router.md#hasRoute ) : ๊ฒฝ๋ก ์ด๋ฆ์ ์ธ์๋ก ์ ๋ฌํ์ฌ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ๋์ง ํ์ธ.
115
- - [ ` router.getRoutes() ` ] ( /api/interfaces/Router.md#getRoutes ) : ๋ชจ๋ ๊ฒฝ๋ก ๋ ์ฝ๋๋ฅผ ๋ฐฐ์ด๋ก ๋ฐํ.
114
+ - [ ` router.hasRoute() ` ] ( /api/interfaces/Router.md#hasRoute ) : ๋ผ์ฐํธ ์ด๋ฆ์ ์ธ์๋ก ์ ๋ฌํ์ฌ ๋ผ์ฐํธ๊ฐ ์กด์ฌํ๋์ง ํ์ธ.
115
+ - [ ` router.getRoutes() ` ] ( /api/interfaces/Router.md#getRoutes ) : ๋ชจ๋ ๋ผ์ฐํธ ๋ ์ฝ๋๋ฅผ ๋ฐฐ์ด๋ก ๋ฐํ.
0 commit comments