๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

๐ŸŽน HOC

by frontChoi 2023. 10. 8.
๋ฐ˜์‘ํ˜•

๐Ÿฉฐ HOC

vue์—์„œ ๋กœ์ง์„ ์žฌํ™œ์šฉ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๊ทธ ์ค‘์— mixin์ด ์žˆ๊ธด ํ•˜์ง€๋งŒ,, ๋กœ์ง์ด ๋ณต์žกํ• ์ˆ˜๋ก component๋ž‘ mixin๋ณ€์ˆ˜๊ฐ€ ๊ฒน์ณ ๊ด€๋ฆฌ์˜ ์–ด๋ ค์›€์ด ๋ณด์ธ๋‹ค. ๊ทธ๋ฆฌํ•˜์—ฌ ์•Œ์•„๋ณธ ๋ฐฉ๋ฒ•์ด HOC(์•„์ง๊นŒ์ง€ ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์—์„œ ์“ฐ์ง€์•Š์Œ) ์ด๋‹ค.

HOC๋Š” High Order Component์ธ๋ฐ, ํ•จ์ˆ˜์˜ ์ธ์ž์— ์ปดํผ๋„ŒํŠธ๋ฅผ ๋ฐ›๊ณ  ์ปดํผ๋„ŒํŠธ๋ฅผ ๋ฆฌํ„ดํ•ด์ค€๋‹ค.

์•„์ง Hello World ๋‹จ๊ณ„๋กœ ์•Œ์•„๊ฐ€๋Š” ์ค‘์ด๋‹ค.

 

๐ŸŽฐ List,List2 ๋กœ์ง

์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ฃผ์†Œ๋Š” ๋‹ค๋ฅด์ง€๋งŒ,hocList๋ฅผ ์„ธํŒ…ํ•˜๋Š” ๊ณผ์ •์€ ๊ฐ™๋‹ค. ์ด๋Ÿฌํ•œ ๋น„์Šทํ•œ ๋กœ์ง์„ ์žฌํ™œ์šฉ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ค‘์— ํ•˜๋‚˜๊ฐ€ HOC์ด๋‹ค. 

 

๐Ÿ‘€ HOC ์ž‘์„ฑ

withHoc.js๋ฅผ ๋งŒ๋“ค๋ฉฐ ๊ด€๋ก€์ ์œผ๋กœ withXXX ๋ฅผ ๋ถ™์ธ๋‹ค๊ณ  ํ•œ๋‹ค.

ํ˜ธ์ถœํ•˜๋Š” URL๋ฅผ ๋ฐ›๊ณ , ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” Component๋ฅผ ์ธ์ž๋กœ ๋ฐ›๋Š”๋‹ค.

๊ทธ๋ฆฌ๊ณ  props๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

 

๐Ÿฅน withHoc๋ฅผ ํ†ตํ•ด ์ปดํผ๋„ŒํŠธ ๋ฆฌํ„ด

withHoc๋ฅผ ํ†ตํ•ด ์ปดํผ๋„ŒํŠธ๋ฅผ ์ธ์ž์— ๋„ฃ์–ด์ค€๋‹ค.

 

withHoc => ListView์ˆœ์œผ๋กœ ์ปดํผ๋„ŒํŠธ๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์œ„์ฒ˜๋Ÿผ ์ž‘์„ฑํ•  ๊ฒฝ์šฐ ์ฝ”๋“œ์˜ ์–‘์„ ์ค„ ์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ํ™•์‹คํžˆ ์žˆ๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€