๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

โญ Personal_Study/Vue23

Lifecycle Hooks Lifecycle Hooks ๊ฐœ์š” โœ” ๊ฐ Vue ์ธ์Šคํ„ด์Šค๋Š” ์ƒ์„ฑ๊ณผ ์†Œ๋ฉธ์˜ ๊ณผ์ • ์ค‘ ๋‹จ๊ณ„๋ณ„ ์ดˆ๊ธฐํ™” ๊ณผ์ •์„ ๊ฑฐ์นจ Vue ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒฝ์šฐ, ์ธ์Šคํ„ด์Šค DOM์— ๋งˆ์šดํŠธํ•˜๋Š” ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด DOM์„ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๊ฒฝ์šฐ ๋“ฑ โœ” ๊ฐ ๋‹จ๊ณ„๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ๋˜์–ด ํŠน์ • ๋กœ์ง์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ โœ” ์ด๋ฅผ lifecycle hook์ด๋ผ ํ•œ๋‹ค Lifecycle Hooks created โœ” Vue instance๊ฐ€ ์ƒ์„ฑ๋œ ํ›„ ํ˜ธ์ถœ๋จ โœ” data, computed๋“ฑ์˜ ์„ค์ •์ด ์™„๋ฃŒ๋œ ์ƒํƒœ โœ” ์„œ๋ฒ„์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ vue instance์˜ data์— ํ• ๋‹นํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๊ธฐ์— ์ ํ•ฉ โœ” ๋‹จ, mount๋˜์ง€ ์•Š์•„ ์š”์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ export default { ... created() { this.getDogImage() .. 2022. 11. 14.
Vuex Vuex State Management State Management(์ƒํƒœ ๊ด€๋ฆฌ) ๊ฐœ์š” โœ” ์ƒํƒœ(state): ํ˜„์žฌ์— ๋Œ€ํ•œ ์ •๋ณด(data) โœ” Web Application์˜ ์ƒํƒœ: ํ˜„์žฌ App์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” data โœ” ๊ฐ component๋Š” ๋…๋ฆฝ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ๊ฐ์˜ ์ƒํƒœ(data๋ฅผ ๊ฐ€์ง„๋‹ค) โœ” ํ•˜์ง€๋งŒ ๊ฒฐ๊ตญ component๋“ค์ด ๋ชจ์—ฌ ํ•˜๋‚˜์˜ App์„ ๊ตฌ์„ฑํ•˜๋ฏ€๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ component๊ฐ€ ๊ฐ™์€ ์ƒํƒœ(data)๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค! Pass Props & Emit Event โœ” ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์„ ์ง๊ด€์ ์œผ๋กœ ํŒŒ์•… ๊ฐ€๋Šฅํ•˜๋‹ค โœ” ๊ทธ๋Ÿฌ๋‚˜ component์˜ ์ค‘์ฒฉ์ด ๊นŠ์–ด์ง€๋ฉด ๋ฐ์ดํ„ฐ์˜ ์ „๋‹ฌ์ด ์–ด๋ ค์›Œ์ง„๋‹ค๋Š” ๋‹จ์  Centralized Store โœ” ์ค‘์•™ ์ €์žฅ์†Œ(store)์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„์„œ ์ƒํƒœ ๊ด€๋ฆฌ โœ” component์˜.. 2022. 11. 14.
Emit Event Emit Event Emit Event ๊ฐœ์š” โœ” ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ ์‹œํ‚จ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ด๋ฒคํŠธ ๋ฆฌ์Šคํ„ฐ์˜ ์ฝœ๋ฐฑํ•จ์ˆ˜ ์ธ์ž๋กœ ์ „๋‹ฌ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๋Š” ํ•ด๋‹น ์ด๋ฒคํŠธ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์Œ Emit Event ๊ธฐ์ดˆ ... ํด๋ฆญ! This is my Component ํ๋ฆ„ ์ •๋ฆฌ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์— ์žˆ๋Š” ๋ฒ„ํŠผ ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ์ฒญ์ทจํ•˜์—ฌ ์—ฐ๊ฒฐ๋œ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜(childToParent) ํ˜ธ์ถœ ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜์—์„œ $emit์„ ํ†ตํ•ด ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์— ์ด๋ฒคํŠธ(child-to-parent) ๋ฐœ์ƒ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๋Š” ์ž์‹ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฐœ์ƒ์‹œํ‚จ ์ด๋ฒคํŠธ(child-to-parent)๋ฅผ ์ฒญ์ทจํ•˜์—ฌ ์—ฐ๊ฒฐ๋œ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜(parentGetEvent) ํ˜ธ์ถœ Emit with Data ... ํด๋ฆญ! โœ” ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ(em.. 2022. 11. 13.
Pass Props Pass Props Data in components Data in components ๊ฐœ์š” โœ” ์™„์ „ํžˆ ๋™์ผํ•œ data๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ Component์—์„œ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ๋ฒ•?! โœ” ์ปดํฌ๋„ŒํŠธ๋Š” ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ, ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ฒŒ ์„ค์ •! โœ” ๋ฐ์ดํ„ฐ ํ๋ฆ„ ํŒŒ์•… ์šฉ์ด โœ” ์œ ์ง€ ๋ณด์ˆ˜ ์šฉ์ด pass props & emit event โœ” ๋ถ€๋ชจ -> ์ž์‹์œผ๋กœ์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„ pass props โœ” ์ž์‹ -> ๋ถ€๋ชจ๋กœ์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„ emit event Pass Props ๊ฐœ์š” โœ” ์š”์†Œ์˜ ์†์„ฑ(property)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ โœ” props๋Š” ๋ถ€๋ชจ(์ƒ์œ„) ์ปดํฌ๋„ŒํŠธ์˜ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ํŠน์„ฑ โœ” ์ž์‹(ํ•˜์œ„) ์ปดํฌ๋„ŒํŠธ๋Š” porps ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์‹ ํ•˜๋Š” props๋ฅผ ๋ช…์‹œ์ ์œผ.. 2022. 11. 12.
Vue Component Vue Component Vue Component ๊ตฌ์กฐ โœ” ํ…œํ”Œ๋ฆฟ(HTML) HTML์˜ body ๋ถ€๋ถ„ ๋ˆˆ์œผ๋กœ ๋ณด์—ฌ์ง€๋Š” ์š”์†Œ ์ž‘์„ฑ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋ฅผ html์š”์†Œ ์ฒ˜๋Ÿผ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ โœ” ์Šคํฌ๋ฆฝํŠธ(JavaScript) JavaScript ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋˜๋Š” ๊ณณ ์ปดํฌ๋„ŒํŠธ ์ •๋ณด, ๋ฐ์ดํ„ฐ, ๋ฉ”์„œ๋“œ ๋“ฑ vue ์ธ์Šคํ„ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์ด ์ž‘์„ฑ๋œ๋‹ค. โœ” ์Šคํƒ€์ผ(CSS) CSS๊ฐ€ ์ž‘์„ฑ๋˜๋ฉฐ ์ปดํฌ๋„ŒํŠธ์˜ ์Šคํƒ€์ผ์„ ๋‹ด๋‹น ๊ตฌ์กฐ ์ •๋ฆฌ โœ” ์ปดํฌ๋„ŒํŠธ๋“ค์ด tree ๊ตฌ์กฐ๋ฅผ ์ด๋ฃจ์–ด ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ ๋‹ค. โœ” root์— ํ•ด๋‹นํ•˜๋Š” ์ตœ์ƒ๋‹จ์˜ component๊ฐ€ App.vue โœ” ์ด App.vue๋ฅผ index.html๊ณผ ์—ฐ๊ฒฐ โœ” ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€๋งŒ๋“ค rendering -> SPA Vue component ์‹ค์Šต MyComponentj.vue // MyComp.. 2022. 11. 11.
SFC (Single File Component) SFC Component Component ๊ฐœ์š” โœ” UI๋ฅผ ๋…๋ฆฝ์ ์ด๊ณ  ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์กฐ๊ฐ๋“ค๋กœ ๋‚˜๋ˆˆ ๊ฒƒ ์ฆ‰ ๊ธฐ๋Šฅ๋ณ„๋กœ ๋ถ„ํ™”ํ•œ ์ฝ”๋“œ ์กฐ๊ฐ โœ” CS์—์„œ๋Š” ๋‹ค์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์šฉ์„ฑ์„ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์˜๋ฏธ โœ” ํ•˜๋‚˜์˜ app์„ ๊ตฌ์„ฑํ•  ๋•Œ ์ค‘์ฒฉ๋œ ์ปดํฌ๋„ŒํŠธ๋“ค์˜ tree๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋ณดํŽธ์ ! โœ” ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ด, ์žฌ์‚ฌ์šฉ์„ฑ ํ–ฅ์ƒ Component based architecture์˜ ํŠน์ง• โœ” ๊ด€๋ฆฌ ์šฉ์ด โœ” ์žฌ์‚ฌ์šฉ์„ฑ โœ” ํ™•์žฅ ๊ฐ€๋Šฅ โœ” ์บก์Šํ™” โœ” ๋…๋ฆฝ์  Component in Vue โœ” ์ด๋ฆ„์ด ์žˆ๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Vue instance โœ” new Vue() SFC(Single File Component) โœ” ํ•˜๋‚˜์˜ .vueํŒŒ์ผ์ด ํ•˜๋‚˜์˜ Vue instace์ด๊ณ , ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ! โœ” Vue instan.. 2022. 11. 11.