๐ Vue.js
-
[Vue.js] ๋ผ์ดํ์ฌ์ดํด ํ (Lifecycle Hooks)๐ Vue.js 2025. 4. 16. 16:27
ํฌ์คํ ์ด์ ์ ์์ ๐ก Vue.js์ ๋ผ์ดํ์ฌ์ดํด(Lifecycle)์ด๋?Vue ์ปดํฌ๋ํธ๋ ๋จ์ํ ํ ๋ฒ ๋ง๋ค์ด์ง๊ณ ๋๋๋ ๊ฒ ์๋๋ผ, ํ์๋ถํฐ ์๋ฉธ๊น์ง ์ผ๋ จ์ ๋จ๊ณ๋ฅผ ๊ฑฐ์นฉ๋๋ค. ์ด ๊ณผ์ ์ ์ปดํฌ๋ํธ ์๋ช ์ฃผ๊ธฐ(Lifecycle)๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.์ฝ๊ฒ ๋งํ๋ฉด, ์ปดํฌ๋ํธ๊ฐ์์ฑ๋๊ณ (create), DOM์ ๋ถ๊ณ (mount), ์ ๋ฐ์ดํธ๋๊ณ (update), ์ฌ๋ผ์ง๊ธฐ๊น์ง (unmount) ์ด ์ ์ฒด ํ๋ฆ์ Vue๊ฐ ๋ด๋ถ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์์ผ๋ฉฐ, ๊ฐ์ฅ ์ค์ํ ์์๋ํน์ ์์ ๋ง๋ค ์คํํ ์ฝ๋๋ฅผ ์ง์ ์์ฑํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ฌ์ฉํ๋ ๊ฒ ๋ฐ๋ก! ๋ผ์ดํ์ฌ์ดํด ํ (Lifecycle Hooks) ์ ๋๋ค. Vue 3์์๋ ์ปดํฌ๋ํธ์ ์๋ช ์ฃผ๊ธฐ ๋์ ํน์ ์์ ์ ์คํํ ์ ์๋ ๋ผ์ดํ์ฌ์ดํด ํ (Lifecycle Hooks)..
-
[Vue.js] Props์ Emits๐ Vue.js 2024. 12. 5. 16:39
Vue.js์ ์ปดํฌ๋ํธ ์์คํ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์์ ๋จ์๋ก ๋๋ ์ ์๋๋ก ๋์์ค๋๋ค.์ด ๊ณผ์ ์์ ๋ถ๋ชจ์ ์์ ์ปดํฌ๋ํธ ๊ฐ์ ๋ฐ์ดํฐ ์ ๋ฌ๊ณผ ์ด๋ฒคํธ ์ฒ๋ฆฌ๊ฐ ์ค์ํฉ๋๋ค.Vue3์ 1-2. ์์ ์ปดํฌ๋ํธ ์์ ์ปดํฌ๋ํธ {{ msg }} ๊ฒฐ๊ณผ ๋ถ๋ชจ ์ปดํฌ๋ํธ์ ๋ฉ์์ง๊ฐ ์์ ์ปดํฌ๋ํธ๋ก ์ ๋ฌ๋์ด ํ๋ฉด์ ์ถ๋ ฅ๋ฉ๋๋ค. defineProps๋ Vue3์ 2-2. ์์ ์ปดํฌ๋ํธ ์์ ์ปดํฌ๋ํธ ์ด๋ฒคํธ ๋ฐ์์ํค๊ธฐ ๊ฒฐ๊ณผ ์์ ์ปดํฌ๋ํธ์์ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ณ , ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ํด๋น ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ์ฌ ์๋ฆผ์ ๋์๋๋ค. defineEmits๋ Vue3์ ๋ฌธ๋ฒ์์ ์์ ์ปดํฌ๋ํธ๊ฐ ๋ถ๋ชจ ์ปดํฌ๋ํธ์ ์ด๋ฒคํธ๋ฅผ ์ ๋ฌํ ๋ ์ฌ์ฉํ๋ ํจ์์ ๋๋ค. emit์ ํตํด ์์ ์ปด..
-
[Vue.js] ๋ฐ์์ฑ(Reactivity) ์์คํ ๐ Vue.js 2024. 12. 4. 15:32
1. Vue์ ๋ฐ์์ฑ ์์คํ ์ด๋?๊ฐ๋จํ๊ฒ ๋ง์๋๋ฆฌ์๋ฉด, ๋ฐ์ดํฐ ์ํ๊ฐ ๋ณํ๋ฉด ์๋์ผ๋ก ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)์ ๋ฐ์๋๋๋ก ํ๋ ์์คํ ์ ๋งํฉ๋๋ค. Vue์ ๋ฐ์์ฑ ์์คํ ์ ์ต์ ๋ฒ ํจํด(Observer Pattern)์ ๊ธฐ๋ฐ์ ๋๊ณ ์์ต๋๋ค.์ต์ ๋ฒ ํจํด์ด๋ ?๋์์ธ ํจํด(Design Pattern)์ค ํ๋๋ก, ๊ฐ์ฒด ๊ฐ 1 ๋ N ๊ด๊ณ๋ฅผ ์ ์ํ์ฌ, ํ ๊ฐ์ฒด์ ์ํ๊ฐ ๋ณ๊ฒฝ๋์์ ๋ ์์กด์ฑ์ ๊ฐ์ง ๋ค๋ฅธ ๊ฐ์ฒด๋ค์๊ฒ ์๋์ผ๋ก ์๋ฆผ์ ์ ๋ฌํ๋ ๊ตฌ์กฐ์ ๋๋ค. ์ฆ, ๊ฐ์ฒด์ ์ํ๊ฐ ๋ณ๊ฒฝ์ด ๋๋ฉด ์์กด์ฑ์ ๊ฐ์ง ๋ค๋ฅธ ๊ฐ์ฒด๋ค์ ์ํ๋ ๊ฐ์ด ๋ณ๊ฒฝ์ ์ํฌ ์ ์๋ค๋ ๋ป์ ๋๋ค. Vue๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ ํ๊ณ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฌํญ์ด ๊ฐ์ง๋๋ฉด ์ด๋ฅผ ๋ ๋๋ง ์์คํ (Renderer)์ ์ ๋ฌํด UI๋ฅผ ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋ฅผ ํ๊ฒ ๋๋๋ฐ, ์ด ๊ณผ์ ์ ํฌ..
-
[Vue.js] ํ ํ๋ฆฟ ๋ฌธ๋ฒ ๋ฐ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ๐ Vue.js 2024. 12. 2. 15:34
1. ํ ํ๋ฆฟ ๋ฌธ๋ฒ์ด๋?Vue.js์ ํ ํ๋ฆฟ์ HTML ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋๋ฉฐ, ์ผ๋ฐ HTML ํ๊ทธ์ Vue๋ง์ ํน๋ณํ ๋ฌธ๋ฒ์ ์ถ๊ฐํ์ฌ ๋์ ์ธ ์ฝํ ์ธ ๋ฅผ ์ฝ๊ฒ ํํํ ์ ์์ต๋๋ค. ํ ํ๋ฆฟ์ ๋ฐ์ดํฐ์ DOM์ ์ฐ๊ฒฐํ๋ ์ญํ ์ ํ๋ฉฐ, ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐ๋ณธ ๋จ์์ ๋๋ค. ๋ํ์ ์ผ๋ก ๋ณด๊ฐ๋ฒ์ด ์์ต๋๋ค. ๋ณด๊ฐ๋ฒ (Interpolation)Vue ํ ํ๋ฆฟ ๋ฌธ๋ฒ์ ํต์ฌ์ ๋ณด๊ฐ๋ฒ์ ๋๋ค. ์ด์ค ์ค๊ดํธ(์ฝง์์ผ ๊ดํธ) {{ }} ๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ํ ํ๋ฆฟ์ ๋ ๋๋งํ ์ ์์ต๋๋ค. {{ title }} {{ new Date().toLocaleDateString() }} ์ ์ฝ๋์์๋ title ๋ฐ์ดํฐ์ ํ์ฌ ๋ ์ง๊ฐ ๋์ ์ผ๋ก ํ๋ฉด์ ๋ ๋๋ง๋ฉ๋๋ค. ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ํ๋ฉด๋ ์ฆ์ ์ ๋ฐ์ดํธ๋ฉ๋๋ค. 2. ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ด๋..
-
[Vue.js] ์ปดํฌ๋ํธ ๊ฐ๋ ๋ฐ ์ฌ์ฉ๋ฒ๐ Vue.js 2024. 10. 16. 13:44
1. ์ปดํฌ๋ํธ๋?Vue์์ ์ปดํฌ๋ํธ๋ UI์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋จ์์ ๋๋ค.์ฃผ๋ก Vue์์ ํ๋ฉด์ ์์ญ์ ๊ตฌ๋ถํ์ฌ ๊ฐ๋ฐํ๋๋ฐ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ผ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋?๐คทโ๏ธ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์ธ๋ค.์ ์ง๋ณด์๊ฐ ์ฉ์ดํ๋ค.์ฝ๋์ ์ค๋ณต์ ์ค์ผ ์ ์๋ค.Vue์์๋ ๊ฐ ์ปดํฌ๋ํธ๋ ๊ณ ์ ์ ๋ฐ์ดํฐ, ๋ฉ์๋, ํ ํ๋ฆฟ์ ๊ฐ์ง๊ณ ๋์ํฉ๋๋ค.ํ์ด์ง์์ ์ฃผ๋ก Header, Body, Footer์ ๊ฐ์ UI ์์๋ฅผ ์ปดํฌ๋ํธ๋ก ๋ง๋ค๊ณ ,๋ค๋ฅธ ๊ณณ์์๋ ์ฌ์ฌ์ฉํ ์ ์์ด ๊ด๋ฆฌ๊ฐ ํธํฉ๋๋ค. ์ปดํฌ๋ํธ๋ฅผ ์ค๋ช ํ๋ฉด์ ์ถ๊ฐ๋ก ๋ง์๋๋ฆฌ๋ฉด,์ด์ ๊น์ง์ Vue2์์์ ์ปดํฌ๋ํธ๋ options API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋์์ต๋๋ค.ํ์ง๋ง Vue3์์๋ Composition API๊ฐ ๋์ ๋์๊ณ ,๊ทธ ์ค์์๋ {{ doubleCount }} ..
-
[Vue.js] Vue ํ๋ก์ ํธ ๊ตฌ์กฐ ์ดํดํ๊ธฐ๐ Vue.js 2024. 9. 24. 14:16
Vue3์์๋ ์ปดํฌ๋ํธ๋ฅผ ๋์ฑ ์ง๊ด์ ์ด๊ณ ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ค๊ธฐ ์ํด : ์ปดํฌ๋ํธ์ HTML ๊ตฌ์กฐ๋ฅผ ์ ์ํฉ๋๋ค.: ์ปดํฌ๋ํธ ๋ก์ง์ ์์ฑํ๋ ๋ถ๋ถ์ผ๋ก, Vue์ ref, reactive ๊ฐ์ ์ํ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.: ์ปดํฌ๋ํธ์ ๋ํ ์คํ์ผ์ ์ง์ ํ๋ ๋ถ๋ถ์ ๋๋ค.ref, reactive๋?ref : ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ (๋ฌธ์์ด, ์ซ์ ๋ฑ)์ด๋ ๊ฐ์ฒด๋ฅผ ๋ฐ์ํ์ผ๋ก ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉํ๋ API์ ๋๋ค. reactive : ๊ฐ์ฒด๋ฅผ ๋ฐ์ํ์ผ๋ก ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉํ๋ API์ ๋๋ค. reactive๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ์์ฑ์ด ๋ฐ์ํ์ด ๋ฉ๋๋ค. // refimport { ref } from 'vue';const count = ref(0); // count๋ณ์๋ฅผ ๋ฐ์ํ ๋ณ์๋ก ๋ง๋ญ๋๋ค.function incremen..
-
[Vue.js] Vue3 ์์ํ๊ธฐ๐ Vue.js 2024. 8. 27. 11:01
Vue.js๋?๐คท Vue.js๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ์ฑ๊ธ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ (SPA)์ ์ฝ๊ฒ ๊ตฌ์ถํ ์ ์๋๋ก ๋์์ฃผ๋ ๊ฐ๋ฒผ์ด ํ๋ก ํธ์๋ JavaScript ํ๋ ์์ํฌ์ ๋๋ค. ์ง๊ด์ ์ธ API์ ๋ฐ์์ฑ ์์คํ ์ ํตํด ๊ฐ๋ฐ์๊ฐ ํจ์จ์ ์ผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค. Vue.js๋ ํ๋ ์น ๊ฐ๋ฐ์์ ์ฃผ๋ชฉ๋ฐ๋ ํ๋ก ํธ์๋ ํ๋ ์์ํฌ์ ๋๋ค. ๋จ์ํ UI๋ฅผ ๋ง๋๋ ๋๊ตฌ๋ฅผ ๋์ด, ๊ฐ๋ฐ์์๊ฒ ํจ์จ์ฑ๊ณผ ์ฆ๊ฑฐ์์ ์ ์ฌํฉ๋๋ค.๐๐ 1. ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์ํคํ ์ฒVue.js๋ UI๋ฅผ ์์ ์ปดํฌ๋ํธ๋ก ๋๋์ด ๊ด๋ฆฌํฉ๋๋ค. ์ด ์ ๊ทผ๋ฒ์ ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ดํดํ๊ธฐ ์ฝ๊ฒ ๋ง๋ญ๋๋ค. 2. ๋ฐ์์ฑ ์์คํ Vue์ ๋ฐ์์ฑ ์์คํ ์ ๋ฐ์ดํฐ์ UI๋ฅผ ์๋์ผ๋ก ๋๊ธฐํํฉ๋๋ค. ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด U..