Single File Component
Single File Components ์ฒด๊ณ๋ .vue
ํ์ผ๋ก ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ์์ ๋งํ๋ค. ํ์ฅ์ .vue
ํ์ผ 1๊ฐ๋ ๋ทฐ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ฑํ๋ 1๊ฐ์ ์ปดํฌ๋ํธ์ ๋์ผํ๋ค.
Vue CLI
Single File Component ์ฒด๊ณ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ .vue
ํ์ผ์ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ธ์ํ ์ ์๋ ํํ์ ํ์ผ๋ก ๋ณํํด์ฃผ๋ ์นํฉ(webpack)์ด๋ Browserify์ ๊ฐ์ ๋๊ตฌ๊ฐ ํ์ํ๋ค. ์นํฉ์ ์น ์ฑ์ ์์(HTML, CSS, ์ด๋ฏธ์ง)๋ค์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋๋ก ๋ณํํด ํ๋๋ก ๋ฌถ์ด ์น ์ฑ๋ฅ์ ํฅ์์์ผ ์ฃผ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋ ๋ฒ๋ค๋ฌ์ด๋ค. ๋ทฐ ๊ฐ๋ฐ์๋ค์ด ํธํ๊ฒ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ ์ ์๋๋ก CLI(Command Line Interface) ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ค.
์์ํ๊ธฐ
์ฌ๊ธฐ์ default๋ฅผ ์ ํํ์ฌ ์์ฑํ๊ฒ ๋๋ฉด babel
๊ณผ eslint
๊ฐ ์ค์น๋๋ค. Manually select features๋ฅผ ์ ํํ๊ฒ ๋๋ฉด ์๋์ ๊ฐ์ด vuex
, vue-router
๋ฑ ๋ช๊ฐ์ง๋ฅผ ๋ ์ ํํ ์ ์๋ค.
ํ๋ก์ ํธ๋ฅผ ํ๋ค๊ฐ ์ถ๊ฐ์ ์ผ๋ก plugin์ ์ค์นํ๊ณ ์ถ์ ๊ฒฝ์ฐ์๋ add
๋ฅผ ํตํด ํ ์ ์๋ค.
default ๋ชจ๋๋ฅผ ์ ํํด ์ค์นํ๊ฒ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก ํ๋ก์ ํธ๊ฐ ์์ฑ๋๋ค.
์ปดํฌ๋ํธ ๊ฐ์ ๊ฒฝ์ฐ์๋ src/components
ํด๋์์ ๊ด๋ฆฌํ๋ค. ์ ํ๋ฆฌ์ผ์ด์
๊ท๋ชจ๊ฐ ์ปค์ ธ์ ๊ธฐ๋ฅ๋ณ๋ก ๊ด๋ฆฌ๋ฅผ ํด์ผํ๋ ๊ฒฝ์ฐ์๋ components/๊ธฐ๋ฅ/<์ปดํฌ๋ํธ๋ช
>.vue
(components/login/LoginForm.vue
)์ ๊ฐ์ ํ์์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ข๋ค.
์๋ฅผ ๋ค์ด์ axios
ํ๋ฌ๊ทธ์ธ์ ์ค์นํด๋ณผ๊ฒ์ด๋ค.
axios ํ๋ฌ๊ทธ์ธ์ด ์ค์น๋๊ณ ๋ ํ ์์ ๋ ํ์ผ๊ณผ ์๋ก ์ถ๊ฐ๋ ํ์ผ์ ํ์ธํ ์ ์๋ค.
์นํฉ ์ค์ ํ์ผ
vue-cli 3.x
์์๋ ์นํฉ ์ค์ ํ์ผ์ ๋
ธ์ถํ์ง ์๋๋ค. 3.x์์๋ ์ค์ ์ ์ถ๊ฐํ๊ธฐ ์ํด์๋ root ๋๋ ํ ๋ฆฌ์ vue.config.js
ํ์ผ์ ์ค์ ํ๊ณ ๋ด์ฉ์ ์์ฑํด์ค๋ค.
vue ui
Vue-CLI3 UI๋ฅผ ํตํด์ ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ ์ ์๋ค.
์์ ๊ฐ์ด ์คํํ๋ฉด ํ๋ก์ ํธ ๋งค๋์ ๊ฐ localhost:8000
์ผ๋ก ๋ธ๋ผ์ฐ์ ๋ฅผ ์คํ์ํจ๋ค. ์ด ํ๋ก์ ํธ ๋งค๋์ ์์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ์ ์์ผ๋ฉฐ, ์ด๋ฏธ ์์ฑ๋ ํ๋ก์ ํธ๋ฅผ ๋ถ๋ฌ์์ ๊ด๋ฆฌ ํฌ์ธํธ๋ก ๋ ์ ์๋ค.
ํ๋ก์ ํธ ์คํ
build
์์ฉ ๋ฐฐํฌ๋ฅผ ์ํ ๋น๋๋ฅผ ์งํํ ์ ์๋ค.
๋น๋๋ฅผ ์คํํ๋ฉด Vue CLI๊ฐ ์นํฉ์ ํตํด ํ๋ก์ ํธ์ ๋ชจ๋ ์์ค ํ์ผ๋ค์ ๋ฒ๋ค๋งํ์ฌ dist ๋๋ ํ ๋ฆฌ์ ๋ฃ์ด์ค๋ค. dist
๋๋ ํ ๋ฆฌ๋ฅผ ํ์ธํด๋ณด๋ฉด ์นํฉ์ด ๋ฒ๋ค๋งํ ํ์ผ๋ค์ ํ์ธํ ์ ์๋ค. ์ด ํ์ผ๋ค์ ์์ฉ ๋ฐฐํฌ์ ์ ํฉํ๋๋ก ์นํฉ์ด ์ต์ ํ ํด๋์ ๊ฒ์ด๋ค.
์ฐธ์กฐ
Last updated
Was this helpful?