Vue 5

[Vue.js] Vuex์™€ State

Vuex๋ž€? Vue.js์˜ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ํŒจํ„ด์ด์ž ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ƒํƒœ ๊ด€๋ฆฌ ํŒจํ„ด์ด๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ๋ทฐ์˜ ๋ฐ˜์‘์„ฑ(Reactivity) ์ฒด๊ณ„๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ํ™”๋ฉด์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒํƒœ ๊ด€๋ฆฌ๋ž€? ์ƒํƒœ ๊ด€๋ฆฌ๋ž€ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๊ณผ ์ด๋ฒคํŠธ ํ†ต์‹ ์„ ํ•œ ๊ณณ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ํŒจํ„ด์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ทฐ์™€ ์„ฑ๊ฒฉ์ด ๋น„์Šทํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ธ ๋ฆฌ์•กํŠธ(React)์—์„œ๋Š” Redux, Mobx์™€ ๊ฐ™์€ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  ๋ทฐ์—์„œ๋Š” Vuex๋ผ๋Š” ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ƒํƒœ ๊ด€๋ฆฌ(State Management)๊ฐ€ ์™œ ํ•„์š”ํ•œ๊ฐ€? ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋Š” ์ž‘์€ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์ง„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปดํฌ๋„ŒํŠธ๋กœ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, Header, button, L..

Framework/Vue.js 2023.04.09

[Vue.js] Vue.js ๊ธฐ๋ณธ - Vue Template

Vue Template Vue์˜ Template ๋ฌธ๋ฒ•์ด๋ž€, Vue๋กœ ํ™”๋ฉด์„ ์กฐ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Template ๋ฌธ๋ฒ•์€ ํฌ๊ฒŒ 1. Data Binding, 2.Directive ์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. Data Binding : Vue Instance์—์„œ ์ •์˜ํ•œ ์†์„ฑ๋“ค์„ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. Instance์˜ ์†์„ฑ์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ตฌ์กฐ : {{data}} Directive : Vue๋กœ ํ™”๋ฉด์˜ ์š”์†Œ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค. ํ™”๋ฉด ์กฐ์ž‘์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹๋“ค์„ ๋ชจ์•„ Directive ํ˜•ํƒœ๋กœ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ตฌ์กฐ : v- (ex. v-bind, v-if, v-else, v-show, v-on, v-model ๋“ฑ) !-- seen์˜ ์ง„์œ„ ๊ฐ’์— ๋”ฐ๋ผ p ํƒœ๊ทธ๊ฐ€ ํ™”๋ฉด์— ํ‘œ์‹œ..

Framework/Vue.js 2022.07.25

[Vue.js] Vue.js ๊ธฐ๋ณธ - Vue Router, Axios

Router Vue Router๋Š” Vue ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ์ด๋™ ์‹œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ, ํ”„๋กœ์ ํŠธ์— Vue Router๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ CDN, NPM 2๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค. CDN ๋ฐฉ์‹ Axios Axios๋Š” Vue์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” Promise ๊ธฐ๋ฐ˜ HTTP ํ†ต์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. CDN๊ณผ NPM ์„ค์น˜ ๋ฐฉ์‹ ๋ชจ๋‘ ์ง€์›ํ•˜๋ฉฐ ์ƒ๋Œ€์ ์œผ๋กœ ๋‹ค๋ฅธ HTTP ํ†ต์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์— ๋น„ํ•ด ๋ฌธ์„œํ™”๊ฐ€ ์ž˜๋˜์–ด ์žˆ๊ณ  API๊ฐ€ ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค. script ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. npm install axios axios์˜ ๊ธฐ๋ณธ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. methods: { fetchData: function() { axios.get(..

Framework/Vue.js 2022.07.25

[Vue.js] Vue.js ๊ธฐ๋ณธ - Component ํ†ต์‹ 

Component ํ†ต์‹  ๋ฐฉ์‹ - ๋ถ€๋ชจ / ์ž์‹ ๋ ˆ๋ฒจ Vue Component๋Š” ๊ฐ๊ฐ ๊ณ ์œ ํ•œ ๋ฐ์ดํ„ฐ ์œ ํšจ ๋ฒ”์œ„๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Component ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทœ์น™์„ ๋”ฐ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์‹ Component → ๋ถ€๋ชจ Component : Event ๋ฐœ์ƒ ๋ถ€๋ชจ Component → ์ž์‹ Component : Props ์ „๋‹ฌ ์ฆ‰, ์ž์‹ Component๋Š” ๋ถ€๋ชจ Component์—๊ฒŒ Event๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ์˜ฌ๋ ค์คŒ์œผ๋กœ์จ, ๋ถ€๋ชจ Component๋Š” ์ž์‹ Component์—๊ฒŒ props ์†์„ฑ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. Props ๋ถ€๋ชจ Component → ์ž์‹ Component Props๋ฅผ ์ด์šฉํ•œ ์˜ˆ์ œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์˜ˆ์ œ๋ฅผ ์ชผ๊ฐœ์–ด ๋ณธ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. 1. ๋ถ€๋ชจ ..

Framework/Vue.js 2022.07.24

[Vue.js] Vue.js ๊ธฐ๋ณธ - Vue, MVVM ํŒจํ„ด, Instance, Component

Vue Vue๋Š” ๋ฌด์—‡์ผ๊นŒ์š”? Vue.js๋Š” ์›น ๊ฐœ๋ฐœ์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ์ •๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ ๋Œ€์ค‘์ ์ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์ด์ž, MVVM ํŒจํ„ด์˜ ๋ทฐ๋ชจ๋ธ(ViewModel) ๋ ˆ์ด์–ด์— ํ•ด๋‹นํ•˜๋Š” ํ™”๋ฉด(View)๋‹จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž…๋‹ˆ๋‹ค. MVVM ํŒจํ„ด MVVM ํŒจํ„ด์€ 'Model + View + ViewModel' ์„ ์˜๋ฏธํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์œผ๋กœ, View์˜ ๊ฐœ๋ฐœ์„ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋˜๋Š” ๋ฐฑ์—”๋“œ ๋กœ์ง(Model)๊ณผ Client์˜ ๋ฐ์ดํ„ฐ ํ‘œํ˜„๋‹จ์„ ๋ถ„๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํ™”๋ฉด ๋™์ž‘๊ณผ ๊ด€๋ จ ๋กœ์ง๊ณผ DB ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐ ๋ฐฑ์—”๋“œ ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜์—ฌ, ๋ฐ์ดํ„ฐ๋ฅผ Model์— ๋‹ด์•„ View๋กœ ๋„˜๊ฒจ์ฃผ๋Š” ์ค‘๊ฐ„์ง€์ ์œผ๋กœ ViewModel์ด ์ด์šฉ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. Vue Instance Instance๋Š” ๋ทฐ๋กœ ๊ฐœ๋ฐœํ•  ๋•Œ ํ•„์ˆ˜๋กœ ์ƒ์„ฑํ•ด์•ผ ..

Framework/Vue.js 2022.07.24
๋ฐ˜์‘ํ˜•