굥뷰를 햡시댜

Input State 본문

카테고리 없음

Input State

GodZ 2023. 4. 3. 21:07

리액트 컴포넌트에서는 state 값의 변동이 생길 때 마다 렌더링이 새로 이뤄진다.

 

1. 아래 코드를 입력한다.

import {useState} from 'react';

function App() {
  const [title, setTitle] = useState('');
  const [body, setBody] = useState('');
  console.log('check');

  const onSubmit = () => {
    console.log(title, body);
  };

  return (
    <div className="container">
      <div className="mb-3">
        <label className="form-label">Title</label>
        <input className="form-control" value={title} onChange={(e) => {
          setTitle(e.target.value)
        }}/>
      </div>

      <div className="mb-3">
        <label className="form-label">Body</label>
        <textarea className="form-control" value={body} onChange={(e) => {
          setBody(e.target.value)
        }}/>
      </div>
      <button className="btn btn-primary" onClick={onSubmit}>Post</button>
    </div>
  )
}

export default App;

2. 리액트 앱을 실행시킨다.

 

3. 인터넷 브라우저에서 개발자 도구를 연다.

 

4. Title이나 Body 아래 Input 박스나 textarea에 아무 키나 입력하면 onChange함수가 실행되고, 각각 title, body의 값을 변경시킨다. 이 때 키보드 입력이 들어간만큼 컴포넌트가 다시 렌더링 된다.

 -> 키보드 입력이 들어갈 때 마다 title, body의 값이 각각 바뀐다.

 -> 개발자 도구의 콘솔 로그를 보면 키보드를 입력할 때 마다 'check'라는 로그가 남는다.

 -> 결론 : title, body의 값이 변경될 때 마다 컴포넌트가 다시 렌더링 된다는 뜻 ㅎㅎ

 

 

 

Comments