โœ๏ธ What I Learned/TIL

[TIL] react-hook-form mode

Jiwon() 2023. 8. 30. 23:08

๐Ÿ’ก TIL 20230830 - react-hook-form mode


mode๋ž€?

mode๋ž€ React-hook-form์˜ useForm์˜ props ์ค‘ ํ•˜๋‚˜๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ submit์„ ํ•˜๊ธฐ ์ „์— ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. (validation strategy before submitting behaviour)

 

mode ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์–‘์‹์„ ์ œ์ถœํ•˜๊ธฐ ์ „์— ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์ „๋žต์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋Š” handlesubmit ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํŠธ๋ฆฌ๊ฑฐ๋˜๋Š” onSubmit ์ด๋ฒคํŠธ ์ค‘์— ๋ฐœ์ƒํ•œ๋‹ค.

 

1) onSubmit

์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋Š” ์ œ์ถœ ์ด๋ฒคํŠธ์—์„œ ํŠธ๋ฆฌ๊ฑฐ๋˜๋ฉฐ, ์œ ํšจํ•˜์ง€ ์•Š์€ ์ž…๋ ฅ์€ onChange ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ์— ์—ฐ๊ฒฐํ•˜์—ฌ ์œ ํšจ์„ฑ์„ ์žฌํ™•์ธํ•œ๋‹ค.

 

2) onBlur

๋ธ”๋Ÿฌ ์ด๋ฒคํŠธ์—์„œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋˜๋Š”๋ฐ, ๋ธ”๋Ÿฌ ์ด๋ฒคํŠธ๋Š” ์‚ฌ์šฉ์ž์˜ focus๊ฐ€ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์ด๋™ํ–ˆ์„ ๋•Œ ์ด๋ฒคํŠธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

3) onChange

input value๊ฐ€ change๋  ๋•Œ๋งˆ๋‹ค ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋˜๋ฏ€๋กœ ๋ Œ๋”๋ง์ด ์—ฌ๋Ÿฌ ๋ฒˆ ๋‹ค์‹œ ์ˆ˜ํ–‰๋œ๋‹ค. ๋”ฐ๋ผ์„œ onChange์˜ ๊ฒฝ์šฐ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฏ€๋กœ ์‚ฌ์šฉ์— ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

4) onTouched

์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋Š” ์ฒ˜์Œ์— ์ฒซ ๋ฒˆ์งธ blur ์ด๋ฒคํŠธ์—์„œ ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ์ดํ›„์—๋Š” ๋ชจ๋“  change ์ด๋ฒคํŠธ์—์„œ ํŠธ๋ฆฌ๊ฑฐ๋œ๋‹ค.

 

5) all

์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋Š” blur ๋ฐ change ์ด๋ฒคํŠธ ๋ชจ๋‘์—์„œ ํŠธ๋ฆฌ๊ฑฐ๋œ๋‹ค. ์ด ๊ฒฝ์šฐ๋„ input value๊ฐ€ change ๋  ๋•Œ๋งˆ๋‹ค ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค๋Š” ์ ์— ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.