๐Ÿ“–[React]Form

ํ˜ฑยท2022๋…„ 7์›” 13์ผ

React

๋ชฉ๋ก ๋ณด๊ธฐ
14/28

๐Ÿ’— Form: ์–‘์‹

ํ…์ŠคํŠธ ์ž…๋ ฅ ๋ฟ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌด์–ธ๊ฐ€๋ฅผ ์„ ํƒํ•ด์•ผ ํ•˜๋Š” ๋ชจ๋‘,
์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

โœ HTML Form

<form>
  <label>
    ์ด๋ฆ„:
    <input type="text" name="name"/>
  </label>
  <button type="submit">์ œ์ถœ</button>
</form>
//์ž์ฒด์ ์œผ๋กœ state๋ฅผ ๊ด€๋ฆฌ, js๋ฅผ ํ†ตํ•ด ๊ฐ๊ฐ์˜ ๊ฐ’์˜ ์ ‘๊ทผ์ด ์–ด๋ ค์›€

โœ Controlled Components

๊ฐ’์ด ๋ฆฌ์•กํŠธ์˜ ํ†ต์ œ๋ฅผ ๋ฐ›๋Š” input form element,
๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ state์—์„œ ๊ด€๋ฆฌ

function NameForm(props){
  const [value, setValue] = useState('');
  
  const handleChange = (event) => {
    setValue(event.target.value);
  }
  //์ƒˆ๋กญ๊ฒŒ ๋ณ€๊ฒฝ๋œ ๊ฐ’์„ value๋ผ๋Š” ์ด๋ฆ„์˜ state์— ์ €์žฅ
  //1. event: ์ด๋ฒคํŠธ ๊ฐ์ฒด 2. event.target: ํ˜„์žฌ ๋ฐœ์ƒํ•œ event์˜ target
  //event.target.value: ํ•ด๋‹น target์˜ value ์†์„ฑ (input element์˜ ๊ฐ’)
 

  const handleSubmit = (event) => {
    aler('์ž…๋ ฅํ•œ ์ด๋ฆ„: ' +value);
    event.preventDefault();
  }
  
  return(
    <form onSubmit={handleSubmit}>
      <label>
        ์ด๋ฆ„:
        <input type="text" value={value} onChange={handleChange}/>
      </label>
      <button type="submit">์ œ์ถœ</button>
   </form>
  )
}

//value์— ๋“ค์–ด ์žˆ๋Š” ๊ฐ’=> react component state์—์„œ ๊ฐ’์„ ๊ฐ€์ ธ์™€ ๋„ฃ์–ด์คŒ
//onChange: ์ž…๋ ฅ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ํ˜ธ์ถœ 


// ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ์ง์ ‘์ ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Œ!!!!
//ex) ๋ชจ๋“  ์ž…๋ ฅ๊ฐ’์„ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ

const handleChange = (event) => {
  setValue(event.target.value.toUpperCase());
profile
new blog: https://hae0-02ni.tistory.com/

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