[๐Ÿ’ป ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  FE 44๊ธฐ]custom-component ๊ณผ์ œ - 1

JiEunยท2023๋…„ 4์›” 19์ผ
0
post-thumbnail

โœ”๏ธ ์‹œ์ž‘

์ด์ „ Figma๋กœ ์ž‘์—…ํ–ˆ๋˜ ๋ชจ๋‹ฌ์ฐฝ, ํ† ๊ธ€ ๋ฒ„ํŠผ, ํƒญ ๋ฉ”๋‰ด ๋“ฑ์„
์ง์ ‘ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ œ๋ฅผ ํŽ˜์–ด๋ถ„๊ณผ ๊ฐ™์ด ์ง„ํ–‰ํ–ˆ๋‹ค.


๐Ÿ“ ์•Œ๊ฒŒ๋œ ๋ถ€๋ถ„

  • ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ํ™”๋ฉด ๋‹ค๋ฅด๊ฒŒ ๋…ธ์ถœํ•˜๊ธฐ
const [isOpen, setIsOpen] = useState(false);
.
.
.
return(
  {!isOpen
	? "Open Modal"
	: "Opened!"
	}
)
  • { , } ๋งŒ ์žˆ๋‹ค๋ฉด ํ•จ์ˆ˜, ์กฐ๊ฑด๋ฌธ ๋“ฑ์„ ๋„ฃ์–ด ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.
//์ƒํ™ฉ์— ๋”ฐ๋ผ ํด๋ž˜์Šค ๋ช… ๋‹ค๋ฅด๊ฒŒ ์ฃผ๊ธฐ
<div className={`toggle-container ${isOn ? "toggle--checked" : ""}`} />
  • ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์— ์ธ์ž๋ฅผ ๋„ฃ์–ด์ค˜์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ์„ ๊ฒฝ์šฐ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋กœ ๋งŒ๋“ค์–ด ์ค€๋‹ค. () => {}
//onClick={selectMenuHandler(index)} === ์—๋Ÿฌ
<button
onClick={()=>{
	selectMenuHandler(index)
}}>
ํด๋ฆญ
</button>
  • event.target ํ˜„์žฌ ์„ ํƒ๋œ ์š”์†Œ๋ฅผ ์•Œ๋ ค์ค€๋‹ค.
event.target.value // ํ•ด๋‹น ์š”์†Œ์˜ value ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ
  • event.key ๋ฅผ ์ด์šฉํ•ด ์–ด๋–ค ํ‚ค๋ฅผ ํด๋ฆญ ํ–ˆ๋Š”์ง€ ์•Œ์•„ ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
event.key === 'Enter' // Enterํ‚ค๋ฅผ ๋ˆ„๋ฅธ ์ƒํƒœ์ธ ๊ฒฝ์šฐ
event.key === "ArrowDown" // ์•„๋ž˜ ๋ฐฉํ–ฅํ‚ค๋ฅผ ๋ˆ„๋ฅธ ์ƒํƒœ์ธ ๊ฒฝ์šฐ
event.key === "ArrowUp" // ์œ„ ๋ฐฉํ–ฅํ‚ค๋ฅผ ๋ˆ„๋ฅธ ์ƒํƒœ์ธ ๊ฒฝ์šฐ
event.key === "ArrowRight" // ์˜ค๋ฅธ์ชฝ ๋ฐฉํ–ฅํ‚ค๋ฅผ ๋ˆ„๋ฅธ ์ƒํƒœ์ธ ๊ฒฝ์šฐ
event.key === "ArrowLeft" // ์™ผ์ชฝ ๋ฐฉํ–ฅํ‚ค๋ฅผ ๋ˆ„๋ฅธ ์ƒํƒœ์ธ ๊ฒฝ์šฐ
  • ์ž์‹ ์š”์†Œ์— ์Šคํƒ€์ผ์„ ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ >์‚ฌ์šฉ
export const DropDownContainer = styled.ul`
  background-color: #fff;
  > li {
    background-color: #000;
  }
`

โœ๏ธ ๋งˆ์น˜๋ฉฐ

์ด๋ฒˆ ํŽ˜์–ด ์ƒˆ๋กœ์šด ํŽ˜์–ด๋ถ„์€ ๋„ˆ๋ฌด ์ž˜ ํ•˜์…”์„œ ๊ฑฐ์˜ ๋ฐฐ์šฐ๋ฉด์„œ ์ง„ํ–‰ํ•œ ๊ฑฐ ๊ฐ™๋‹ค.
๋•๋ถ„์— ๋งŽ์ด ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ  ์–ด๋– ํ•œ ์ƒํ™ฉ์— ์–ด๋–ค ์‹์œผ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋˜ ์‹œ๊ฐ„์ด์˜€๋‹ค.

๋งŽ์€ ๋„์›€์„ ์ฃผ์ง€ ๋ชปํ•ด ๋ฏธ์•ˆํ•œ ๋งˆ์Œ์ด๋‹ค.
๋‹ค์Œ ๋‚ ์€ ๊ณผ์ œ๋ฅผ ์Šคํƒ€์ผ๋ง ํ•˜๋Š” ์‹œ๊ฐ„์œผ๋กœ ๊ทธ ๋•Œ์—๋Š” ๊ผญ ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค.

profile
๐Ÿ’ป ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๋ชฉํ‘œ๋กœ ์„ฑ์žฅ ์ค‘! (์•Œ์•„๋ดค๋˜ ๋‚ด์šฉ ๋“ฑ์„ ์ •๋ฆฌํ•˜๊ธฐ)

0๊ฐœ์˜ ๋Œ“๊ธ€