2.4.2
https://jsfiddle.net/50wL7mdz/50757/
์ํ์ด ์ ๊ณต๋์ง ์์ ๊ฒฝ์ฐ ๊ตฌ์ฑ ์์ ์ปจํ ์คํธ ๋ด์ ๊ฐ์ฒด๋ก $ attrs์ ์ก์ธ์คํฉ๋๋ค.
$ attrs๋ ์ธ์ ํ ์์๋ ์ํ์ ํฌํจํ๋ ๊ฐ์ฒด์ ๋๋ค. ๋ฐ๋ผ์ ์ปดํฌ๋ํธ ํ๊ทธ์ ์ํ์ด ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ ๋น ๊ฐ์ฒด๊ฐ ์์๋ฉ๋๋ค.
$ attrs๊ฐ ์ ์๋์ง ์์์ต๋๋ค.
ํธ๊ธฐ์ฌ์์ $attrs
์ ์๋์ง ์์ ๋ฌธ์ ๋ ๋ฌด์์
๋๊น? $attrs.something
์ก์ธ์คํ๊ณ ์์ต๋๊น? (๊ทธ๋ ๋ค๋ฉด ์?)
ํธ์ง : ์์ฑ์ด ์์ ๋ $attrs
๋์ผํ๊ฒ ์ ์๋์ง ์์ ๊ฒ์ด ์ค์ ๋ก ์ ์ฉ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ ๋ํ ๋ฌป์ต๋๋ค
@greegus , if ($attrs.myProp)
๊ฐ์ ์์
์ํ๋ ๊ฒฝ์ฐ babel-plugin-transform-optional-chaining ์ ์ฌ์ฉํ์ฌ if ($attrs?.myProp)
ํ ์ ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ์์๋๋ ํ๋์ด๋ผ๊ณ ํ๋จํ์ง๋ง ๋ ผ์์ ์ฌ์ง๊ฐ ์์ต๋๋ค.
ํ @greegus
๋ฐฉ๊ธ ์ด๊ฒ์ ๋ถ๋ช ์ณค๊ณ $attrs
๋ undefined
์ด์ด์ผํ๋ค๋ ๊ฒ์ ํ์คํ ์์์น ๋ชปํ ์ผ์ด์์ต๋๋ค.
๋น์ ์ด ๋ ์ผํ๋ฌ ๋ฐ์ผ๋ก ์์ํ๋ ํ ์ผ ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ค๋ฉด ์๋ฅผ ๋ค์ด,์ด ๋ชฉ๋ก์ผ๋ก ์์ํ๊ธฐ ์ํด ๋งค์ฐ ์ด์ํ ๊ฒ undefined
๋์ []
. ์ฑ ์ ์ฒด์ if
๋ฌธ (๋๋ ์ ํ์ ์ฐ๊ฒฐ)์ ์ถ๊ฐํด์ผํฉ๋๋ค. ์ด ๊ฒฝ์ฐ๋ ๋น์ทํฉ๋๋ค.
ํ์ ์์ฅ ์ฌ๋ก๋ฅผ ๋ค์ด ์ฌ์ฉ์๊ฐ์๋ ๊ฒฝ์ฐ ํ์ธํ๊ณ ์ ํ ๋ $attrs
์กด์ฌ, ์ฌ์ ํ ์ฌ์ฉํ ์์์ ๊ฒ Object.keys($attrs).length
๊ฒฝ์ฐ ์ฌ์ ํ ๋ฎ์ฌ ์๋๋ก.
์ด๊ฒ์ด ๋ฒ๊ทธ๋ผ๊ณ ์ ๋ง๋ก ํ์ ํ๋ ๋ถ๋ถ์ OP๊ฐ ์ง์ ํ๋ฏ์ด ์ํ์ด ์ปดํฌ๋ํธ์ ์ ๋ฌ ๋ ๋ $attrs
_is_๊ฐ ๋น ๊ฐ์ฒด๋ก ์ค์ ๋๋ค๋ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ํ์ฌ $attrs
๊ฐ ์๋์ง ์ค์ ๋ก ํ์ธํ๋ ค๋ฉด ๋ ๊ฐ์ง ์ ๋ต์ด ๋ชจ๋ ํ์ํฉ๋๋ค.
$attrs && Object.keys($attrs).length
@chrisvfritz๊ฐ ์ ๋ฅผ ์ค๋ํ์ต๋๋ค-๋ฒ๊ทธ์ ๋๋ค.
@LinusBorg ํ์ฌ์ด ๋ฒ๊ทธ์ ๋ํด ์์ ์ค์ธ ์ฌ๋์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ ๋ํ ํ๋ณด๋ฅผํด๋ ๋ ๊น์?
ํ์คํ!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ฐฉ๊ธ ์ด๊ฒ์ ๋ถ๋ช ์ณค๊ณ
$attrs
๋undefined
์ด์ด์ผํ๋ค๋ ๊ฒ์ ํ์คํ ์์์น ๋ชปํ ์ผ์ด์์ต๋๋ค.๋น์ ์ด ๋ ์ผํ๋ฌ ๋ฐ์ผ๋ก ์์ํ๋ ํ ์ผ ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ค๋ฉด ์๋ฅผ ๋ค์ด,์ด ๋ชฉ๋ก์ผ๋ก ์์ํ๊ธฐ ์ํด ๋งค์ฐ ์ด์ํ ๊ฒ
undefined
๋์[]
. ์ฑ ์ ์ฒด์if
๋ฌธ (๋๋ ์ ํ์ ์ฐ๊ฒฐ)์ ์ถ๊ฐํด์ผํฉ๋๋ค. ์ด ๊ฒฝ์ฐ๋ ๋น์ทํฉ๋๋ค.ํ์ ์์ฅ ์ฌ๋ก๋ฅผ ๋ค์ด ์ฌ์ฉ์๊ฐ์๋ ๊ฒฝ์ฐ ํ์ธํ๊ณ ์ ํ ๋
$attrs
์กด์ฌ, ์ฌ์ ํ ์ฌ์ฉํ ์์์ ๊ฒObject.keys($attrs).length
๊ฒฝ์ฐ ์ฌ์ ํ ๋ฎ์ฌ ์๋๋ก.์ด๊ฒ์ด ๋ฒ๊ทธ๋ผ๊ณ ์ ๋ง๋ก ํ์ ํ๋ ๋ถ๋ถ์ OP๊ฐ ์ง์ ํ๋ฏ์ด ์ํ์ด ์ปดํฌ๋ํธ์ ์ ๋ฌ ๋ ๋
$attrs
_is_๊ฐ ๋น ๊ฐ์ฒด๋ก ์ค์ ๋๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ํ์ฌ$attrs
๊ฐ ์๋์ง ์ค์ ๋ก ํ์ธํ๋ ค๋ฉด ๋ ๊ฐ์ง ์ ๋ต์ด ๋ชจ๋ ํ์ํฉ๋๋ค.