๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

JavaScript168

Nested Router Nested Router(๋„ค์Šคํ‹ฐ๋“œ ๋ผ์šฐํ„ฐ)๋Š” ๋ผ์šฐํ„ฐ๋กœ ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•  ๋•Œ ์ตœ์†Œ 2๊ฐœ ์ด์ƒ์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ๋„ค์Šคํ‹ฐ๋“œ ๋ผ์šฐํ„ฐ๋ฅผ ์ด์šฉํ•˜๋ฉด URL์— ๋”ฐ๋ผ์„œ ์ปดํฌ๋„ŒํŠธ์˜ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ํ‘œ์‹œ๋œ๋‹ค. 2022. 6. 6.
[Vue.js] router URL์˜ ํ•ด์‹œ ๊ฐ’(#)์„ ์—†์• ๋Š” ๋ฒ• vue router์˜ ๊ธฐ๋ณธ URL ํ˜•์‹์€ ํ•ด์‹œ ๊ฐ’(#)์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋งŒ์•ฝ index.html/login๊ณผ ๊ฐ™์ด ํ•ด์‹œ ๊ฐ’์„ ์—†์• ๊ณ  ์‹ถ์œผ๋ฉด ํžˆ์Šคํ† ๋ฆฌ ๋ชจ๋“œ(history mode)๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋œ๋‹ค. var router = new VueRouter({ mode: 'history', routes }) 2022. 6. 6.
Vue router Vue router๋Š” vue์—์„œ ๋ผ์šฐํŒ… ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ๊ณต์‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. Vue router๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ํ•„์š”ํ•œ ํŠน์ˆ˜ ํƒœ๊ทธ์˜ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ํƒœ๊ทธ ์„ค๋ช… ํŽ˜์ด์ง€ ์ด๋™ ํƒœ๊ทธ. ํ™”๋ฉด์—์„œ๋Š” ๋กœ ํ‘œ์‹œ๋˜๋ฉฐ ํด๋ฆญํ•˜๋ฉด URL๋กœ ์ด๋™ํ•œ๋‹ค. ํŽ˜์ด์ง€ ํ‘œ์‹œ ํƒœ๊ทธ. ๋ณ€๊ฒฝ๋˜๋Š” URL์— ๋”ฐ๋ผ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฟŒ๋ ค์ฃผ๋Š” ์˜์—ญ. ๋ทฐ ๋ผ์šฐํ„ฐ ์˜ˆ์ œ Main ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋™ Login ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋™ var app = new Vue({ router }).$mount('#app') ์ด ๋ถ€๋ถ„์€ ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ผ์šฐํ„ฐ์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด router๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค. ์—ฌ๊ธฐ์„œ $mount()๋Š” el ์†์„ฑ๊ณผ ๊ฐ™์ด ์ธ์Šคํ„ด์Šค๋ฅผ ํ™”๋ฉด์— ๋ถ™์—ฌ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ el ์†์„ฑ์„ ๋„ฃ์ง€ ์•Š์•˜๋”๋ผ๋„ ์ƒ์„ฑํ•˜๊ณ  ๋‚˜์„œ .. 2022. 6. 6.
๊ฐ™์€ ๋ ˆ๋ฒจ์˜ ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ํ†ต์‹  1. ๋จผ์ € ์ด๋ฒคํŠธ ๋ฒ„์Šค๋กœ ํ™œ์šฉํ•  ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ 1๊ฐœ ์ƒ์„ฑํ•˜๊ณ , eventBus๋ผ๋Š” ๋ณ€์ˆ˜์— ์ฐธ์กฐํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด eventBus๋ผ๋Š” ๋ณ€์ˆ˜๋กœ ์ƒˆ ์ธ์Šคํ„ด์Šค์˜ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—๋Š” template ์†์„ฑ๊ณผ methods ์†์„ฑ์„ ์ •์˜ํ•œ๋‹ค. template ์†์„ฑ์—๋Š” 'ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ ์˜์—ญ์ž…๋‹ˆ๋‹ค'๋ผ๋Š” ํ…์ŠคํŠธ์™€ show ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. methods ์†์„ฑ์—๋Š” showLog() ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•˜๊ณ  ๋ฉ”์„œ๋“œ ์•ˆ์—๋Š” eventBus.$emit()์„ ์„ ์–ธํ•˜์—ฌ triggerEventBus๋ผ๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒํ•˜๋Š” ๋กœ์ง์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ์ด ์ด๋ฒคํŠธ๋Š” ๋ฐœ์ƒํ•  ๋•Œ ์ˆ˜์‹ ํ•˜๋Š” ์ชฝ์— ์ธ์ž ๊ฐ’์œผ๋กœ 100์ด๋ผ๋Š” ์ˆซ์ž๋ฅผ ํ•จ๊ป˜ ์ „๋‹ฌํ•œ๋‹ค. 3. ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์˜ created ๋ผ์ดํ”„ ์‚ฌ์ดํด ํ›…์— eventBus.$on()์œผ๋กœ.. 2022. 6. 6.
ํ•˜์œ„์—์„œ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋ฒคํŠธ ์ „๋‹ฌํ•˜๊ธฐ : $emit ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์— ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๋ฉด ๋œ๋‹ค. ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์˜ ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‹ค๊ฐ€ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•ด๋‹น ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. ์ด๋ฒคํŠธ ๋ฐœ์ƒ๊ณผ ์ˆ˜์‹ ์€ $emit()๊ณผ v-on: ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค. // ์ด๋ฒคํŠธ ๋ฐœ์ƒ this.$emit('์ด๋ฒคํŠธ๋ช…') $emit์„ ํ˜ธ์ถœํ•˜๋ฉด ๊ด„ํ˜ธ ์•ˆ์— ์ •์˜๋œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ $emit()์„ ํ˜ธ์ถœํ•˜๋Š” ์œ„์น˜๋Š” ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์˜ ํŠน์ • ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์ด๋‹ค. ๋”ฐ๋ผ์„œ $emit()์„ ํ˜ธ์ถœํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” this๋Š” ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. // ์ด๋ฒคํŠธ ์ˆ˜์‹  ํ˜ธ์ถœํ•œ ์ด๋ฒคํŠธ๋Š” ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ํƒœ๊ทธ์—์„œ v-on: ์œผ๋กœ ๋ฐ›๋Š”๋‹ค. ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ฐœ์ƒ.. 2022. 6. 5.
์ƒ์œ„์—์„œ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌํ•˜๊ธฐ : props props๋ž€? ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ 2022. 6. 5.
๋ฐ˜์‘ํ˜•