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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ208

์šฐ๋ฆฌ ๋ชจ๋‘ ๋‹ค ์•„๋Š” ์‚ฌ์‹ค ์šฐ๋ฆฌ ๋ชจ๋‘ ๋ชจ๋ฅธ ์ฒ™ํ•˜์ง€๋งŒ ๋‹ค ์•„๋Š” ์‚ฌ์‹ค์ฒ˜๋Ÿผ, ๋ถ€์œ ํ•˜๊ณ  ๋ฆฌ๋ฒ„๋Ÿดํ•œ ์ขŒํŒŒ ์—†์ด ์„ธ์ƒ์€, ํŠนํžˆ ์ขŒํŒŒ๋Š” ๋Œ์•„๊ฐ€์ง€ ์•Š์œผ๋‹ˆ๊นŒ. ๊น€๋„ํ›ˆ, ์šฐ๋ฆฌ ์ด์ œ ๋‚ญ๋งŒ์„ ์ด์•ผ๊ธฐํ•ฉ์‹œ๋‹ค. 2021. 9. 26.
[vue] props ์ด๋ฒคํŠธ ๋ฐœ์ƒ๊ณผ ์ˆ˜์‹  (์ƒ์œ„์—์„œ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋ฒคํŠธ ์ „๋‹ฌ) props ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ ํ•˜์œ„์ปดํฌ๋„ŒํŠธ ์†์„ฑ์— ๋จผ์ € ์ •์˜๋ฅผ ํ•จ. Vue.components('child-component', { props : ['props ์†์„ฑ ์ด๋ฆ„'] } ์ƒ์œ„์ปดํฌ๋„ŒํŠธ์˜ html ์ฝ”๋“œ์— ๋“ฑ๋ก๋œ child-component ํƒœ๊ทธ์— v-bind ์†์„ฑ์„ ์ถ”๊ฐ€ ์ƒ์œ„์ปดํฌ๋„ŒํŠธ๋ฅผ ๋”ฐ๋กœ ์ง€์ •ํ•˜์ง€๋Š” ์•Š์•˜๋Š”๋ฐ? - ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋“ฑ๋กํ•จ๊ณผ ๋™์‹œ์— ๋ทฐ ์ธ์Šคํ„ด์Šค ์ž์ฒด๊ฐ€ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ. - ์ธ์Šคํ„ด์Šค์— ์ƒˆ๋กœ์šด ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋“ฑ๋กํ•˜๋ฉด ๊ธฐ์กด์—์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ๋Š” ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ(๋ถ€๋ชจ)๊ฐ€ ๋˜๊ณ , ์ƒˆ๋กœ ๋“ฑ๋ก๋œ ์ปดํฌ๋„ŒํŠธ๋Š” ํ•˜์œ„(์ž์‹) ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋จ. - ์ƒˆ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋“ฑ๋กํ•œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ตœ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ(Root Component)๋ผ๊ณ  ๋ถ€๋ฆ„ 2021. 9. 19.
[vue] $emit ์ด๋ฒคํŠธ ๋ฐœ์ƒ๊ณผ ์ˆ˜์‹  (ํ•˜์œ„์—์„œ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋ฒคํŠธ ์ „๋‹ฌ) event emit : ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ(emit)์‹œ์ผœ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์— ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ๋ฉด ๋œ๋‹ค. ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์˜ ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‹ค๊ฐ€ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•ด๋‹น ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ. ์ด๋ฒคํŠธ ๋ฐœ์ƒ๊ณผ ์ˆ˜์‹  ํ˜•์‹ $emit()๊ณผ v-on: ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ $emit()์„ ํ˜ธ์ถœํ•˜๋Š” ์œ„์น˜๋Š” ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์˜ ํŠน์ • ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€ //์ด๋ฒคํŠธ ๋ฐœ์ƒ this.$emit('์ด๋ฒคํŠธ๋ช…'); //this๋Š” ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ€๋ฆฌํ‚ด ํ˜ธ์ถœํ•œ ์ด๋ฒคํŠธ๋Š” ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ํƒœ๊ทธ(์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์˜ template ์†์„ฑ์— ์œ„์น˜)์—์„œ v-on:์œผ๋กœ ๋ฐ›์Œ. //์ด๋ฒคํŠธ ์ˆ˜์‹  2021. 9. 19.
[vue] directives ๋ทฐ ์ฃผ์š” ๋””๋ ‰ํ‹ฐ๋ธŒ ์ •๋ฆฌ ๋ทฐ ๋””๋ ‰ํ‹ฐ๋ธŒ๋ž€? html ํƒœ๊ทธ์•ˆ์˜ v-์ ‘๋‘์‚ฌ๋ฅผ ๊ฐ€์ง€๋Š” ๋ชจ๋“  ์†์„ฑ์„ ์˜๋ฏธํ•จ. ํ™”๋ฉด์˜ ์š”์†Œ๋ฅผ ์ง์ ‘ ์ œ์–ดํ•  ํ•„์š” ์—†์ด ๋ทฐ์˜ ๋””๋ ‰ํ‹ฐ๋ธŒ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ™”๋ฉด ์š”์†Œ๋“ค์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Œ. directive name role ๋น„๊ณ  v-if ์ง€์ •ํ•œ ๋ทฐ ๋ฐ์ดํ„ฐ ๊ฐ’์˜ ์ฐธ, ๊ฑฐ์ง“ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ํ•ด๋‹น html ํƒœ๊ทธ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ํ‘œ์‹œํ•˜์ง€ ์•Š๋Š”๋‹ค. v-for ์ง€์ •ํ•œ ๋ทฐ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋งŒํผ ํ•ด๋‹น html ํƒœ๊ทธ๋ฅผ ๋ฐ˜๋ณต ์ถœ๋ ฅํ•จ v-show v-if์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ์˜ ์ง„์œ„ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ํ•ด๋‹นhtmlํƒœ๊ทธ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ํ‘œ์‹œํ•˜์ง€ ์•Š๋Š”๋‹ค. v-if๋Š” ํ•ด๋‹น ํƒœ๊ทธ๋ฅผ ์™„์ „ํžˆ ์‚ญ์ œํ•˜์ง€๋งŒ v-show๋Š” cssํšจ๊ณผ๋งŒ display:none;์œผ๋กœ ์ฃผ์–ด ์‹ค์ œ ํƒœ๊ทธ๋Š” ๋‚จ์•„ ์žˆ๊ณ  ํ™”๋ฉด ์ƒ์œผ๋กœ๋งŒ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค. v-bind html ํƒœ๊ทธ์˜ ๊ธฐ๋ณธ ์†์„ฑ๊ณผ ๋ทฐ ๋ฐ์ด.. 2021. 9. 19.