Vue.js
1) Vue.js๋ ํ๋ก ํธ์๋ ์น ํ๋ ์์ํฌ๋ก, ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
2) MVVM ํจํด์ ViewModel ๋ ์ด์ด์ ํด๋นํ๋ ํ๋ฉด๋จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์ฅ์
- ๋ฆฌ์กํธ์ ์ต๊ทค๋ฌ์ ๋นํด ์ฑ๋ฅ์ด ์ฐ์ํ๊ณ ๋น ๋ฅด๋ค.
- ์ต๊ทค๋ฌ์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ ํน์ฑ๊ณผ ๋ฆฌ์กํธ์ Virtual DOM ๋ ๋๋ง ํน์ง์ ๋ชจ๋ ๊ฐ์ง๊ณ ์๋ค.
- MVVMํจํด ๊ฐ๋ฐ ๋ฐฉ์์ผ๋ก ๋ก์ง ๋ถ๋ฆฌ ๋ฐ ์ ์ง๋ณด์ ์ฉ์ด
Vue CLI(Vue Command Line Interface)
- Vue CLI๋ Vue.js ํ๋ก์ ํธ๋ฅผ ์์ฑ, ๊ด๋ฆฌํ๊ณ ๋น๋ํ ์ ์๋ ๊ณต์ CLI ๋๊ตฌ์
๋๋ค.
- Vue CLI๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ก์ ํธ ๊ตฌ์ฑ, ํ
ํ๋ฆฟ ์ ํ, ์์กด์ฑ ๊ด๋ฆฌ, ๊ฐ๋ฐ ์๋ฒ ์คํ ๋ฑ์ ์ฝ๊ฒ ์ํํ ์ ์์ต๋๋ค.
- Vue CLI๋ฅผ ํตํด Vue 2 ๋ฐ Vue 3 ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์ฐธ๊ณ : chatGPT
Vue 2
- Vue 2.x๋ Vue.js์ ์ด์ ๋ฒ์ ์ผ๋ก, ๋ง์ ํ๋ก์ ํธ์์ ์์ง ์ฌ์ฉ๋๊ณ ์๋ค.
- Vue 2๋ ๊ฐ๋ณ๊ณ ์ง๊ด์ ์ธ ๋ฌธ๋ฒ์ ๊ฐ์ง๋ฉฐ, Vue Router ๋ฐ Vuex์ ๊ฐ์ ๊ณต์ ํ๋ฌ๊ทธ์ธ๋ค์ ์ง์ํ๋ค.
์ฐธ๊ณ : chatGPT
Vue 3
- Vue 3.x๋ Vue.js์ ์ต์ ๋ฒ์ ์ผ๋ก, Vue.js ํต์ฌ ์ฝ๋๋ฅผ ์์ ํ ์ฌ์์ฑํ์ฌ ํฅ์๋ ์ฑ๋ฅ๊ณผ ์๋ก์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
- Vue 3๋ Composition API๋ผ๋ ์๋ก์ด ๊ฐ๋ฐ ๋ฐฉ์์ ๋์
ํ์ฌ ์ฝ๋์ ๊ฐ๋
์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ํฅ์์์ผฐ๋ค.
- Vue 3๋ TypeScript๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ง์ํ๋ฉฐ, Vue 2์์ ํธํ์ฑ์ ์ ์งํ๋ฉด์ ์
๊ทธ๋ ์ด๋ํ ์ ์๋๋ก ๋
ธ๋ ฅํ๊ณ ์๋ค.
์ฐธ๊ณ : chatGPT
vue create
vue create
๋ช
๋ น์ด๋ Vue CLI๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก์ด Vue.js ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๋ช
๋ น์ด์ด๋ค.
Vue CLI ๋ฒ์ ์ ๋ฐ๋ผ์ vue create ๋ช
๋ น์ ์ฌ์ฉํ์ฌ Vue.js ํ๋ก๊ทธ์ ํธ๋ฅผ ์์ฑํ ๋์ ํ๊ฒฝ๊ณผ ์ค์ ์ด ๋ฐ๋ ์ ์๋ค.
- ํ๋ก์ ํธ ํ
ํ๋ฆฟ
Vue CLI ๋ฒ์ ์ ๋ฐ๋ผ ๊ธฐ๋ณธ ํ๋ก์ ํธ ํ
ํ๋ฆฟ์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ์๋ก์ด ๋ฒ์ ์์๋ ๋ ๋ง์ ๊ธฐ๋ฅ์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํ๊ฑฐ๋ ๋ค๋ฅธ ๊ธฐ๋ณธ ์ค์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธ ์์กด์ฑ ๋ฒ์
Vue CLI์ ์๋ก์ด ๋ฒ์ ์ ์ผ๋ฐ์ ์ผ๋ก ๋น๋ ๋๊ตฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋ฐ ์์กด์ฑ ํจํค์ง์ ๋ฒ์ ์ ์
๋ฐ์ดํธํฉ๋๋ค. ์ด๋ก ์ธํด ํ๋ก์ ํธ ์์ฑ ์ ์ฌ์ฉ๋๋ ์์กด์ฑ์ ๋ฒ์ ์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
- ํ๋ก์ ํธ ์ค์
Vue CLI์ ๋ฒ์ ์ ๋ฐ๋ผ ํ๋ก์ ํธ ์์ฑ ์ ์ค์ ๋๋ ๊ธฐ๋ณธ ์ค์ ์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, Babel, ESLint, CSS ์ ์ฒ๋ฆฌ๊ธฐ, ํ
์คํ
๋๊ตฌ ๋ฑ์ ์ค์ ์ด ๋ฒ์ ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค.
- ํ๋ฌ๊ทธ์ธ ๋ฐ ํ๋ฆฌ์
Vue CLI๋ ํ๋ฌ๊ทธ์ธ๊ณผ ํ๋ฆฌ์
์ ํตํด ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์๋ก์ด Vue CLI ๋ฒ์ ์์๋ ์ด๋ฌํ ํ๋ฌ๊ทธ์ธ๊ณผ ํ๋ฆฌ์
์ด ์
๋ฐ์ดํธ๋๊ฑฐ๋ ์๋ก ์ถ๊ฐ๋ ์ ์์ต๋๋ค.
- ๋น๋ ๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ ์ค์
Vue CLI ๋ฒ์ ์ ๋ฐ๋ผ ๋น๋ ๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ ์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ์นํฉ ๊ตฌ์ฑ ๋ฐ ๋ค๋ฅธ ๋น๋ ๋๊ตฌ์ ์ค์ ์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
ํ๋ก์ ํธ ์์ฑ ์์๋ ํญ์ vue create
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ Vue CLI์ ์ต์ ๋ฒ์ ์ ๊ธฐ์ค์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ข๋ค.
Vue Instance
1) ๋ทฐ๋ก ํ๋ฉด์ ๊ฐ๋ฐํ๊ธฐ ์ํด ํ์์ ์ผ๋ก ์์ฑํด์ผ ํ๋ ๊ธฐ๋ณธ ๋จ์์ด๋ค.
2) new Vue()
๋ก ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ Vue๋ฅผ ์์ฑ์๋ผ๊ณ ํ๋ค. ์์ฑ์๋ ๋ทฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ก๋ฉํ๊ณ ๋๋ฉด ์ ๊ทผํ ์ ์๋ค.
ํ์
new Vue({
...
})
Vue Router์ Vue CLI ๊ด๋ จ
- Vue Router 3์ ๊ฒฝ์ฐ, Vue CLI๋ฅผ ์ฌ์ฉํ์ฌ Vue Router๋ฅผ ์ค์นํ๋ฉด ์๋์ผ๋ก Vue2 ๊ธฐ๋ฐ์ ์ค์ ์ด ์์ฑ๋๋ค.
- Vue Router 4์ ๊ฒฝ์ฐ, Vue CLI๋ฅผ ์ฌ์ฉํ์ฌ Vue Router๋ฅผ ์ค์นํ๋ฉด Vue 3 ๊ธฐ๋ฐ์ ์ค์ ์ด ์์ฑ๋๋ค.
Vue Router 3 ๊ณผ Vue Router 4 ์ฐจ์ด
- Composition API ์ง์
- TypeScript ์ง์
- Router ๋ฉ์๋ ๋ณ๊ฒฝ
- ๋ผ์ฐํฐ ๊ธฐ๋ฅ์ ๊ฐ์
- ๋ผ์ฐํฐ ์ค์ ๊ตฌ๋ฌธ ๋ณ๊ฒฝ
- ํ๋ฌ๊ทธ์ธ ๋ฐฉ์ ๋ณ๊ฒฝ
- ๋ฐํ์ ์ต์ ํ
๋ฐ์ดํฐ๋ฐ์ธ๋ฉ
๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ(React)
Javascript(Model)์์ HTML(View)๋ก ํ ๋ฐฉํฅ์ผ๋ก๋ง ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํํ๋ ๊ฒ์ ์๋ฏธ
์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ(Vue)
Javascript(Model)๊ณผ HTML(View) ์ฌ์ด์ ViewModel์ด ์กด์ฌํ์ฌ ํ๋๋ก ๋ฐ์ธ๋ฉ ๋์ด์ ๋ ์ค ํ๋๋ง ๋ณ๊ฒฝ๋์ด๋ ํจ๊ป ๋ณ๊ฒฝ๋๋ ๊ฒ์ ์๋ฏธ
์ฐธ๊ณ : https://adjh54.tistory.com/49
React ์ Vue ๋น๊ต
๊ณตํต์
- ๊ฐ์ DOM์ ์ฌ์ฉํ๋ค.
- ๋ฐ์์ ์ด๊ณ ์กฐํฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ๋ฅผ ์ ๊ณตํ๋ค.
- ์ฝ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ง ์ง์คํ๊ณ ์๊ณ ๋ผ์ฐํ
๋ฐ ์ํ๊ด๋ฆฌํ๋ ์ปดํจ๋์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ค.
๋ฆฌ์กํธ ๋ผ์ฐํ
๋ผ์ด๋ธ๋ฌ๋ฆฌ : React Router Dom & ๋ฆฌ์กํธ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ : Redux, Recoil, React-Query
๋ทฐ ๋ผ์ฐํ
๋ผ์ด๋ธ๋ฌ๋ฆฌ : Vue Router & ๋ทฐ ์ํ๊ด๋ฆฌ ๋ฆฌ์๋ธ๋ฌ๋ฆฌ : Vuex
์ฐจ์ด์
- React๋ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ด๊ณ Vue๋ ์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ ๋ฐฉ์์ ์ด์ฉํ๋ค.
- ๋ฆฌ์กํธ๋ JSX ํํ๋ก ์ฝ๋๋ฅผ ์์ฑ
- Vue์ Virtual Dom๊ตฌํ์ด React๋ณด๋ค ๋น ๋ฅด๊ณ ์ค๋ฒํค๋๊ฐ ์ ๋ค.
*์ค๋ฒํค๋ : ์ด๋ค ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ์ํด ๋ค์ด๊ฐ๋ ๊ฐ์ ์ ์ธ ์ฒ๋ฆฌ ์๊ฐ, ๋ฉ๋ชจ๋ฆฌ ๋ฑ์ ๋งํ๋ค.
- Vue๋ ํ
ํ๋ฆฟ์ ์ฌ์ฉํด ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ ์์ด ๊ฐ๋ฅํ๋ฉฐ ์ง์
์ฅ๋ฒฝ์ด ๋ฎ๋ค.
์ฐธ๊ณ : https://80000coding.oopy.io/f27f6183-0523-43e1-ab90-8f8175bd4a88