2022. 3. 7. 21:25ใFront-End ์์ ์ค/Vue.js
๐ ๋ชฉ์ฐจ
[Vue.js] ๊ธฐ์ด ๊ฐ๋
์ ๋ฆฌ - ๊ธฐ๋ณธ ํ๊ฒฝ ๊ตฌ์ฑ
[Vue.js] ๊ธฐ์ด ๊ฐ๋ ์ ๋ฆฌ - Vue Router
[Vue.js] ๊ธฐ์ด ๊ฐ๋ ์ ๋ฆฌ - Vue LifeCycle Hook
[Vue.js] ๊ธฐ์ด ๊ฐ๋ ์ ๋ฆฌ - data(), Data ์ฒ๋ฆฌ
[Vue.js] ๊ธฐ์ด ๊ฐ๋ ์ ๋ฆฌ - Watch, Array, for๋ฌธ(๋ฐ๋ณต๋ฌธ), if๋ฌธ
๐ฑ Git Hub ์ฃผ์ : https://github.com/junyharang-FrontEnd-coding-study/vue.js-study
๐ ์ฐธ๊ณ ์๋ฃ : https://www.youtube.com/watch?v=sqH0u8wN4Rs
๐ Vue.js ๋?
Vue.js๋ ์น ํ๋ก ํธ์๋ Framwork ์ค ํ๋์ธ ๊ฒ์ด์์!
์ต๊ทผ์๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ํ ๋, ์์ JavaScript๋, jQuery๋ง์ ์ด์ฉํ๋ ๊ฒฝ์ฐ๋ ์๋ค๊ณ ํด์.
์ด์ ๋ Vue.js, React.js, Angular.js ์ค ํ๋๋ฅผ ์ฌ์ฉํด์ ๊ฐ๋ฐ์ ํ๋ ๊ฒ์ด์์.
์ด๋ฒ์ ์ฃผ๋ํ๋์ Vue.js๋ฅผ ๊ณต๋ถ ํด ๋ณด๋ ค๊ณ ํ๋ ๊ฒ์ด์์.
Vue.js๋ Component(์ปดํฌ๋ํธ) ๊ธฐ๋ฐ์ SPA(Single Page Application)์ ๊ตฌ์ถํ ์ ์๊ฒ ํด์ฃผ๋ Framwork์ธ ๊ฒ์ด์์.
๐ฝ Component๋?
- ์น์ ๊ตฌ์ฑํ๋ Logo, Manu Bar, Button, Modal ๋ฑ Web Page ๋ด์ ๋ค์ํ UI(User Interface) ์์.
- ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ๊ตฌ์กฐํ ํ ๊ฒ
๐ฝ SPA(Sing Page Application)์ด๋?
- ๋จ์ผ ํ์ด์ง ์ดํ๋ฆฌ์ผ์ด์
- ํ๋์ ํ์ด์ง ์์์ ํ์ํ ์์ญ ๋ถ๋ถ๋ง Loading ๋๋ ํํ
- ๋น ๋ฅธ ํ์ด์ง ์ ํ
- ์ ์ ํธ๋ํฝ ์
Vue.js ๋ฑ์ผ๋ก ๊ฐ๋ฐ์ ํ๋ฉด Component ๋จ์๋ก ๊ฐ๋ฐ์ ํ๊ฒ ๋๋ ๊ฒ์ด์์. ์ค์ ๊ตฌ๋ ๋๋ ๋ฐฉ์์ ๋จ์ผ ํ๋์ ํ์ด์ง์์ ํ์ํ ํ์ด์ง๋ง Loading์ด ๋๊ฒ ๋๋ ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐ์ ํ๊ฒ ๋๋ ๊ฒ์ด์์.
์ฆ, ์ค์ ํ์ด์ง ์์ฒด๊ฐ ์ด๋ํ๊ฒ ๋๋ฉด CSS, HTML, JavaScript ๋ฑ์ ๋ค์ Loading์ ํ๋ ๊ธฐ์กด ๋ฐฉ์์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ํ๋ฉด ๊น๋นก์์ด๋, ํผํฌ๋จผ์ค์ ์ํฅ์ด ์๊ฒ ๋๋ค๋ ๋จ์ ์ด ์์๋ ๊ฒ์ด์์.
SPA ๋ฐฉ์์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ ์ฒด๊ฐ Loading์ด ๋๋ ๊ฒ์ด ์๋๋ผ, ๋ณ๊ฒฝ๋๋ ๋ถ๋ถ๋ง Loading์ด ๋๊ธฐ ๋๋ฌธ์ UX ๋ฐ ํผํฌ๋จผ์ค๋ฅผ ํฅ์ํ ์ ์๋ ์ฅ์ ์ด ์๋ ๊ฒ์ด์์.
SPA ์ญ์ ๋จ์ ์ด ์๋ ๊ฒ์ด์์. ์ฒซ Loading ์์ ํ์ํ CSS, HTML, JavaScript ๋ฑ์ ํฌ๊ธฐ๊ฐ ํฌ๋ค๋ฉด ๊ทธ๋งํผ ํผํฌ๋จผ์ค๊ฐ ๋์ ์ ๋ฐ์ ์๋ ๋จ์ ์ ๊ฐ๊ณ ์๋ ๊ฒ์ด์์.
๐ Vue CLI๋?
Vue.js ํ๋ก์ ํธ๋ฅผ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ๊ณ , ๋น๋ํ๊ณ , ์๋น์ค๋ฅผ ๋ฐ์นญํ ์ ์๊ฒ ํด ์ฃผ๋ ๋๊ตฌ(Tool) ์ธ ๊ฒ์ด์์.
์ฐธ๊ณ ๋ก CLI๋ Command Line Interface์ ์ฝ์์ธ๋ฐ, ํฐ๋ฏธ๋์ ํตํด Text ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ ๋๊ตฌ๋ฅผ ๋ปํ๋ ๊ฒ์ด์์.
์ฝ๊ฒ ์ด์ผ๊ธฐ ํ์๋ฉด! ์์ ๋ ์ฌ์ง์ฒ๋ผ ๋ช ๋ น์ด๋ก ์ปดํจํฐ์ ์ํตํ๋ ๊ฒ์ ๋งํ๋ ๊ฒ์ด์์.
Vue cli๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ์๋์ ์ผ๋ก ์ธํ ํด์ฃผ๊ธฐ ๋๋ฌธ์ Package ๊ตฌ์กฐ, Library ๊ตฌ์ฑ, Web pack ์ค์ ๋ฑ์ ์์์ ํด์ค์ผ๋ก ๊ฐ๋ฐ์๊ฐ ์ด๋ฐ ๊ณ ๋ฏผ์ ํ์ง ์๋๋ก ๋์ ์ฃผ๋ ๊ฒ์ด์์.
ํ๋ก์ ํธ Package์์ ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅ ํด ์ฃผ๋ฉด ๋๋ ๊ฒ์ด์์.
๐ก ์ฐธ๊ณ ์ฌํญ :
-g Option : Global์ด๋ผ๋ ๋ป
Enter๋ฅผ ๋๋ฌ์ฃผ๋ฉด ์๋ ์ฌ์ง์ฒ๋ผ ์์์ ์ค์น๋ฅผ ํด ์ฃผ๋ ๊ฒ์ด์์.
โ ๏ธ ๋ฌธ์ ๋ฐ์!
์๋์ฐ๋ ์ด๋ฌ์ง ์์ ๊ฒ์ด๋ผ ์๊ฐ์ด ๋๋๋ฐ, Mac Book ๊ฐ์ ๊ฒฝ์ฐ๋ Unix ๊ธฐ๋ฐ ์ด์์ฒด์ ๋ผ ๊ถํ์ด ์กฐ๊ธ ์๊ฒฉํ ๊ฒ์ด์์.
์ด๋ ๊ฒ Permission denied๋ผ๊ณ ํ๋ ๊ฒ์ Vue.js ํ๋ก์ ํธ ํด๋์ ์ฐ๊ธฐ ๊ถํ์ด ์๊ธฐ ๋๋ฌธ์ธ ๊ฒ์ด์์.
`sudo` ๋ช ๋ น์ด๋ฅผ ํตํด root ๊ถํ์ ์ ์ ๋น๋ ค์ ํ๋ฉด ํด๊ฒฐ ๋๋ ๊ฒ์ด์์.
๋ค์์ `vue create`๋ผ๋ ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด์ ํ๋ก์ ํธ ๊ธฐ๋ฐ์ ๋ง๋ค์ด ์ฃผ๋ฉด ๋๋๋ฐ ๋ช ๋ น์ด ํ์์ ์๋์ ๊ฐ์ ๊ฒ์ด์์.
# vue create [Your Project Name]
๋ค์์ผ๋ก ์ด๋ ๊ฒ ์ ํํ ์ ์๋ ๋ถ๋ถ์ด ๋์ค๋ ๊ฒ์ด์์.
์ฒซ๋ฒ์งธ๋ Defalut ํ๊ฒฝ(babel๊ณผ eslint ์๋ ์ค์น)์ผ๋ก Vue 3.x Version
๋๋ฒ์งธ๋ Defalut ํ๊ฒฝbabel๊ณผ eslint ์๋ ์ค์น)์ผ๋ก Vue 2.x Vesion
์ธ๋ฒ์งธ๋ ์ฌ์ฉ์ ์์ ์ค์ ํ๊ฒฝ์ธ ๊ฒ์ด์์.
์ฃผ๋ํ๋์ ์ฒซ๋ฒ์งธ๋ฅผ ์ ํํ๋๋ก ํ ๊ฒ์ด์์.
๊ทธ๋ฌ๋ฉด ์ด๋ ๊ฒ ์ด์ฌํ ์ค์น๋ฅผ ํ๋ ๊ฒ์ ๋ณผ ์ ์๋ ๊ฒ์ด์์.
์ค์น๊ฐ ๋๋๋ฉด ์์ ๊ฐ์ด ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๊ธด ๊ฒ์ ๋ณผ ์ ์๋ ๊ฒ์ด์์.
์ ๊ธฐ ์๋ ค์ฃผ๋ ๋๋ก ํ๋ฒ ์ด๋์ ํด์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅ ํด ๋ณผ๊ฒ์!
์ด๋ ๊ฒ Vue CLI๋ฅผ ํตํด์ ๊ธฐ๋ณธ ํ๋ก์ ํธ ํ๊ฒฝ ๊ตฌ์ฑ์ ์๋ฃํ ๊ฒ์ด์์.
'Front-End ์์ ์ค > Vue.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Vue.js] ๊ธฐ์ด ๊ฐ๋ ์ ๋ฆฌ - Vue LifeCycle Hook (0) | 2022.03.08 |
---|---|
[Vue.js] ๊ธฐ์ด ๊ฐ๋ ์ ๋ฆฌ - Vue Router (0) | 2022.03.07 |
[React] Router Dom (0) | 2021.10.09 |
[Reacte] Array์ shouldComponentUpdate() (0) | 2021.10.04 |
[Reacte] Component Event ๋ง๋ค๊ธฐ (0) | 2021.10.02 |