Skip to content

Latest commit

ย 

History

History
68 lines (53 loc) ยท 2.98 KB

getting-started.md

File metadata and controls

68 lines (53 loc) ยท 2.98 KB

์‹œ์ž‘ํ•˜๊ธฐ

๊ฐ€์ด๋“œ์˜ ์ƒ˜ํ”Œ ์ฝ”๋“œ๋Š”ES2015๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Vue.js์™€ vue-router๋กœ ๋‹จ์ผ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. Vue.js๋ฅผ ํ†ตํ•ด ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์ปดํฌ๋„ŒํŠธ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. vue-router๋ฅผ ์ถ”๊ฐ€ ํ•  ๋•Œ, ์šฐ๋ฆฌ๊ฐ€ํ•ด์•ผ ํ•  ์ผ์€ ์šฐ๋ฆฌ์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ route์— ๋งคํ•‘ํ•˜๊ณ  vue-router๊ฐ€ ์–ด๋””์„œ ๋ Œ๋”๋งํ•  ์ง€ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๊ธฐ๋ณธ์ ์ธ ์˜ˆ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  ์˜ˆ์ œ๋Š” Vue์˜ ์ „์ฒด ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…œํ”Œ๋ฆฟ ๊ตฌ๋ฌธ ๋ถ„์„์„ ๊ฐ€๋Šฅํ•˜๊ฒŒํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค.

HTML

<scriptsrc="https://unpkg.com/vue/dist/vue.js"></script><scriptsrc="https://unpkg.com/vue-router/dist/vue-router.js"></script><divid="app"><h1>Hello App!</h1><p><!-- ํƒ์ƒ‰์„ ์œ„ํ•ด ๋ผ์šฐํ„ฐ ๋งํฌ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. --><!-- `to` prop๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ๋งํฌ๋ฅผ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. --><!-- `<router-link>`๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ`<a>`ํƒœ๊ทธ๋กœ ๋ Œ๋”๋ง ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค --><router-linkto="/foo">Go to Foo</router-link><router-linkto="/bar">Go to Bar</router-link></p><!-- route outlet --><!-- ๋ผ์šฐํŠธ์™€ ์ผ์น˜ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์—ฌ๊ธฐ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค. --><router-view></router-view></div>

JavaScript

// 0. ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ (์˜ˆ: vue-cli๋ฅผ ์ด์šฉํ•ด์„œ), Vue ๋ฐ VueRouter๋ฅผ ๊ฐ€์ ธ์˜จ ๋‹ค์Œ `Vue.use(VueRouter)`๋ฅผ ํ˜ธ์ถœํ•˜์‹ญ์‹œ์˜ค.// 1. ๋ผ์šฐํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ •์˜ํ•˜์‹ญ์‹œ์˜ค.// ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.constFoo={template: '<div>foo</div>'}constBar={template: '<div>bar</div>'}// 2. ๋ผ์šฐํŠธ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.// ์ผ๋ถ€ ๋ผ์šฐํŠธ ์ •์˜ ๊ฐ ๋ผ์šฐํŠธ๋Š” ์ปดํฌ๋„ŒํŠธ์— ๋งตํ•‘๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.// "์ปดํฌ๋„ŒํŠธ"๋Š” `Vue.extend()`๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋œ// ์‹ค์ œ ์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑ์ž์ด๊ฑฐ๋‚˜ ์ปดํฌ๋„ŒํŠธ ์˜ต์…˜ ๊ฐ์ฒด ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.// ๋‚˜์ค‘์— ์ค‘์ฒฉ ๋œ ๋ผ์šฐํŠธ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.constroutes=[{path: '/foo',component: Foo},{path: '/bar',component: Bar}]// 3. ๋ผ์šฐํ„ฐ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  `routes` ์˜ต์…˜์„ ์ „๋‹ฌํ•˜์‹ญ์‹œ์˜ค.// ์—ฌ๊ธฐ์— ์ถ”๊ฐ€ ์˜ต์…˜์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ง€๊ธˆ์€ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.constrouter=newVueRouter({ routes // routes: routes ์˜ ์•ฝ์–ด})// 4. ๋ฃจํŠธ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๋งˆ์šดํŠธํ•˜์‹ญ์‹œ์˜ค.// ๋ผ์šฐํ„ฐ ์˜ต์…˜์„ ๋ผ์šฐํ„ฐ์— ์‚ฝ์ž…ํ•˜์—ฌ// ์ „์ฒด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋ผ์šฐํ„ฐ๊ฐ€ ์ธ์‹ํ•˜๋„๋ก ํ•˜์‹ญ์‹œ์˜ค.constapp=newVue({ router }).$mount('#app')// ์ด์ œ ์•ฑ์„ ์‹œ์ž‘ ํ•ด๋ณด์„ธ์š”!

์ด ์˜ˆ์ œ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

<router-link>๋Š” ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ผ์šฐํŠธ๊ฐ€ ์ผ์น˜ ํ•  ๋•Œ ์ž๋™์œผ๋กœ .router-link-active ํด๋ž˜์Šค๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. API ๋ ˆํผ๋Ÿฐ์Šค์—์„œ ๋” ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

close