๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿ–ฅ dev-ruby

[Vue] #8 - ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก -> ์ž์‹์ด ๋ถ€๋ชจ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๋ฉด? ๋ณธ๋ฌธ

Vue

[Vue] #8 - ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก -> ์ž์‹์ด ๋ถ€๋ชจ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๋ฉด?

ruby_s 2021. 8. 6. 11:17
728x90
๋ฐ˜์‘ํ˜•
SMALL

1. $emit() : ๋ถ€๋ชจ์—๊ฒŒ ๋ฉ”์„ธ์ง€ ์ฃผ๊ธฐ

๋ถ€๋ชจ์ปดํฌ๋„ŒํŠธ์—์„œ ์“ด ์ž์‹ํƒœ๊ทธ์— @click๋„ฃ์–ด์ฃผ๊ธฐ -> but, ์ž์‹์˜ ์–ด๋”œ ๋ˆŒ๋Ÿฌ๋„ click์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์ž„
==> ์ž์‹์ปดํฌ๋„ŒํŠธ ์•ˆ์˜ ํƒœ๊ทธ์—

@click="$emit('์ž‘๋ช…๋ฐ์ดํ„ฐ', ์š”์ฒญ๋ฐ์ดํ„ฐ)"

ํด๋ฆญํ•˜๋ฉด ๋ถ€๋ชจ์—๊ฒŒ ๋ฉ”์„ธ์ง€๊ฐ€ ๊ฐ„๋‹ค

2. @๋ฐ์ดํ„ฐ="" : ๋ถ€๋ชจ๊ฐ€ ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ›๋Š”๋ฒ•

<Card @๋ฐ›์€์ž‘๋ช…๋ฐ์ดํ„ฐ=" ์ด์•ˆ์— js ์•„๋ฌด๊ฑฐ๋‚˜ ์ ์„ ์ˆ˜ ์žˆ์Œ " /> <Card @openModal="๋ชจ๋‹ฌ์ฐฝ์—ด๋ ธ๋‹ˆ=true" /> ํ•˜๋ฉด ์ž์‹์—๊ฒŒ ๋ชจ๋‹ฌ์ฐฝ์—ด๋ ธ๋‹ˆ=true ๋ฉ”์„ธ์ง€๊ฐ€ ์ „์†ก๋œ๋‹ค

3. $event : ๋ถ€๋ชจ๊ฐ€ ์ž์‹์ด ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ ์“ฐ๋Š” ๋ฒ•

@openModal="๋ชจ๋‹ฌ์ฐฝ์—ด๋ ธ๋‹ˆ=true; clicked=$event"

์ž์‹์—์„œ ๋ณด๋‚ธ '์š”์ฒญํ•œ๋ฐ์ดํ„ฐ'๊ฐ€ clicked๋กœ ์ „๋‹ฌ๋ผ์„œ openModal์„ ํ†ตํ•ด ๋‹ค์‹œ ์ž์‹ํ•œํ…Œ ๋ณด๋‚ด์ค€๋‹ค.

3-1. $emit์„ ํ•จ์ˆ˜ ์•ˆ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์œผ๋ฉด

methods : { ํ•จ์ˆ˜(){ this.$emit('openModal', this.์›๋ฃธ.id) } //๋ฐ์ดํ„ฐ๋ฅผ ํ•จ์ˆ˜์•ˆ์—์„œ ์ฐธ์กฐํ•  ๋•Œ๋Š” this ํ•„์ˆ˜! }

 

728x90
๋ฐ˜์‘ํ˜•
LIST