Vue.js9 ๋จ์ผ ํ์ผ ์ปดํฌ๋ํธ๋ฅผ ์ด์ฉํ Vue ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ 1. ๋จ์ผ ํ์ผ ์ปดํฌ๋ํธ(SFC)Vue ์ปดํฌ๋ํธ๋ฅผ ํ๋์ ํ์ผ(.vue)๋ก ์์ฑํ๋ ๋ฐฉ์์ผ๋ก, `template`, `script`, `style`์ ํ ๊ณณ์ ํฌํจํ์ฌ ๊ด๋ฆฌ ๊ฐ๋ฅํจ.1.1 ๋จ์ผ ํ์ผ ์ปดํฌ๋ํธ์ ํ์์ฑ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ๋ฅผ ํ์ฉํ์ฌ ์ ์ง๋ณด์์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๊ทน๋ํํ ์ ์์HTML, JavaScript, CSS๋ฅผ ํ๋์ ํ์ผ์์ ๊ด๋ฆฌํ์ฌ ์ฝ๋ ๊ฐ๋ ์ฑ์ ํฅ์์ํดํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ด ํ์ฅ์ฑ๊ณผ ํ์ ์ ์ฉ์ดํจ1.2 SFC ํ์ผ ๊ตฌ์กฐ 2. ํ๋ก์ ํธ ์ค์ 2.1 ๋ฒ๋ค๋ง(Bundling) ๊ฐ๋ Vue ํ๋ก์ ํธ๋ ๋ธ๋ผ์ฐ์ ์์ ์คํ๋๊ธฐ ์ ์ ์ฌ๋ฌ ๊ฐ์ ํ์ผ์ ํ๋์ ๋ฒ๋ค๋ก ๋ฌถ์ด ์ต์ ํ๋ ์ํ๋ก ๋ณํํจVite๋ ๋น ๋ฅธ ๊ฐ๋ฐ ์๋ฒ์ ๋น๋ ์๋๋ฅผ ์ ๊ณตํ๋ Vue ๊ณต์ ์ถ์ฒ ๋ฒ๋ค๋ง ๋๊ตฌ์2.2 .. 2025. 4. 4. 06 ์คํ์ผ ์ ์ฉ 1. HTML ์์์ ์คํ์ผ ์ ์ฉVue์์๋ `v-bind:style` ๋๋ `:style`์ ์ฌ์ฉํ์ฌ ๋์ ์ผ๋ก ์คํ์ผ์ ์ ์ฉํ ์ ์์.1.1 ์ธ๋ผ์ธ ์คํ์ผVue์ data ์์ฑ์์ ์คํ์ผ์ ๊ฐ์ฒด ํํ๋ก ์ ์ํ๊ณ , ์ด๋ฅผ `:style`์ ๋ฐ์ธ๋ฉํ์ฌ ์ ์ฉ.CSS ์์ฑ์ ์นด๋ฉ ํ๊ธฐ๋ฒ(camelCase)์ผ๋ก ์์ฑํด์ผ ํจ. ํ ์คํธ let vm = Vue.createApp({ data() { return { style1: { backgroundColor: "aqua", color: "black", } }; }, methods: { overEvent() { .. 2025. 4. 4. 05 ์ด๋ฒคํธ ์ฒ๋ฆฌ 1. ์ด๋ฒคํธ ์ฒ๋ฆฌ ๋ฐฉ์1.1 ์ธ๋ผ์ธ ์ด๋ฒคํธ ์ฒ๋ฆฌ`v-on` ๋๋ ํฐ๋ธ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฒคํธ๋ฅผ ์ง์ ์ฒ๋ฆฌ์์ฑ๋ฒ:๊ธฐ๋ณธ: `v-on:[์ด๋ฒคํธ ์ด๋ฆ]="ํํ์"`๋จ์ถ ํํ: `@[์ด๋ฒคํธ ์ด๋ฆ]="ํํ์"`์ด๋ฒคํธ ๊ฐ์ฒด ํ์ ์: `@[์ด๋ฒคํธ ์ด๋ฆ]="ํจ์๋ช ($event)"`์์ : ๊ธฐ๋ณธ ์ด๋ฒคํธ ์ฒ๋ฆฌ ๊ธ์ก: ์ ๊ธ ์ธ์ถ ๊ณ์ข ์๊ณ : [{{balance}}]1.2 ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ฉ์๋`methods` ์ต์ ์ ์ด๋ฒคํธ ์ฒ๋ฆฌ ํจ์๋ฅผ ์ ์ํ์ฌ ์ฌ์ฉ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ ๋ฑ ๋ณต์กํ ๋ก์ง์ ์ฒ๋ฆฌ ๊ฐ๋ฅ์์ : ์ด๋ฒคํธ ํธ๋ค๋ฌ ์ฌ์ฉ ๊ธ์ก: ์ ๊ธ ์ธ์ถ ๊ณ์ข ์๊ณ : [{{balance}}]2. ์ด๋ฒคํธ ๊ฐ์ฒด (event, e)2.1 ์ฃผ์ ์ด๋ฒคํธ ๊ฐ์ฒด ์์ฑ์์ฑ๋ช ์ค๋ช `target`์ด๋ฒคํธ๊ฐ ๋ฐ์ํ HTML ์์`currentTar.. 2025. 4. 4. 04 Vue ์ธ์คํด์ค 1. Vue ์ธ์คํด์ค๋?Vue ์ ํ๋ฆฌ์ผ์ด์ ์ `Vue.createApp()` ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ Vue ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ผ๋ก ์์ํจ. Vue ์ธ์คํด์ค๋ Vue์ ๊ธฐ๋ณธ ๋จ์์ด๋ฉฐ, ๋ฐ์ดํฐ์ DOM์ ์ฐ๊ฒฐํ์ฌ ๋ฐ์ํ UI๋ฅผ ์ ๊ณตํจ.let vm = Vue.createApp({ name: "App", data() { return { name: "" }; },}).mount("#app");Vue ์ธ์คํด์ค์ ํน์งVue ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋จ์ผ ๋๋ ์ฌ๋ฌ ๊ฐ์ Vue ์ธ์คํด์ค๋ฅผ ์์ฑ ๊ฐ๋ฅ`mount()` ๋ฉ์๋๋ฅผ ํตํด ํน์ DOM ์์์ ์ฐ๊ฒฐ๋จ๋ฐ์ดํฐ, ์ปดํจํฐ๋ ์์ฑ, ๋ฉ์๋, ์๋ช ์ฃผ๊ธฐ ํ ๋ฑ์ ํฌํจํจ2. Vue ์ธ์คํด์ค ์ต์ 2.1 data ์ต์ ์ปดํฌ๋ํธ์ ๋ฐ์ด.. 2025. 4. 3. 03 Vue.js ๊ธฐ์ด์ Template 1. MVVM ํจํดVue.js๋ MVVM(Model-View-ViewModel) ํจํด์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ ํ๋ ์์ํฌ์ ๋๋ค.1.1 MVVM ํจํด ๊ตฌ์ฑ์์Model: ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ด๋นView: HTML๊ณผ CSS๋ก ์์ฑ๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ด๋ ๋ถ๋ถViewModel: View์ ์ค์ ๋ ผ๋ฆฌ ๋ฐ ๋ฐ์ดํฐ ํ๋ฆ์ ๋ด๋นํ๋ ๋ถ๋ถ2. Vue.js ๊ธฐ๋ณธ ๊ฐ๋ 2.1 ๋ณด๊ฐ๋ฒ (Interpolation)๋ฐ์ดํฐ๋ฅผ ํ ํใ ๋ฆฟ์ ๋์ ์ผ๋ก ํ์ํ๊ธฐ ์ํด {{ }}(์ด์ค ์ค๊ดํธ)๋ฅผ ์ฌ์ฉ์์ : {{ message }}3. Vue ๋๋ ํฐ๋ธVue์์ ์ ๊ณตํ๋ DOM ์กฐ์๊ณผ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ํ ์์ฑ์ ๋๋ค.3.1 ์ฃผ์ ๋๋ ํฐ๋ธ ๊ฐ์๋๋ ํฐ๋ธ ์ค๋ช ์์ v-textํ ์คํธ ์ฝํ ์ธ ๋ฐ์ธ๋ฉv-htmlHTML ์ฝํ ์ธ ๋ฐ์ธ๋ฉv-bind.. 2025. 4. 3. 02 Vue.js๋ฅผ ์ํ ES6 1. ES6 ์๊ฐES6(ECMAScript 6): JavaScript์ ํ์คํ๋ ๋ฒ์ (2015๋ ๋ฑ์ฅ)์ผ๋ถ ๋ธ๋ผ์ฐ์ ์์ ES6 ๊ธฐ๋ฅ ๋ฏธ์ง์ → ์ต๊ทผ์๋ ๋๋ถ๋ถ ์ง์๋จ2. let, const2.1 let๋ธ๋ก {} ๋จ์๋ก ์ ํจ ๋ฒ์ ์ง์ ์ ์ธ ์์ด ์ฌ์ฉ ์ ์๋ฌ ๋ฐ์ (์ง์ ํ ์ง์ญ๋ณ์)์ค๋ณต ์ ์ธ ๋ถ๊ฐlet msg = "GLOBAL";function outer() { let msg = "OUTER"; console.log(msg); if (true) { let msg = "BLOCK"; console.log(msg); }}outer();์คํ ๊ฒฐ๊ณผOUTERBLOCK2.2 const์์ ์ ์ธ์ฉ ํค์๋๊ฐ ๋ณ๊ฒฝ ๋ถ๊ฐ (๋จ, ๊ฐ์ฒด๋ ๋ฐฐ์ด ๋ด๋ถ ์์ฑ ๋ณ๊ฒฝ ๊ฐ๋ฅ)const p1 = { name: 'joh.. 2025. 4. 3. ์ด์ 1 2 ๋ค์