프로그래밍/ReactJS

react로 todolist 만들기

타코코딩 2023. 9. 7. 00:44
function App() {
  const [toDo, setToDo] = useState("");
  const [toDos, setToDos] = useState([]);
  const onChange = (e) => {
    setToDo(e.target.value);
  };
  const onSubmit = (e) => {
    e.preventDefault();
    if (toDo == "") {
      return;
    }
    setToDos((currentArray) => [toDo, ...currentArray]);
    setToDo("");
  };
  console.log(toDos);

  return (
    <div>
      <h1>My to Dos({toDos.length})</h1>
      <form onSubmit={onSubmit}>
        <input
          onChange={onChange}
          value={toDo}
          type="text"
          placeholder="wirte your to do"
        />
        <button>Add To Do</button>
      </form>
      <hr />
      <ul>
        {toDos.map((item, i) => (
          <li key={i}>{item}</li>
        ))}
      </ul>
    </div>
  );
}

 

input value 값에 state를 하나 부여한다.

 const onSubmit = (e) => {
    e.preventDefault();
    if (toDo == "") {
      return;
    }
    setToDos((currentArray) => [toDo, ...currentArray]);
    setToDo("");
  };
 

 

prevent defalut로 새로고침 방지하고 바닐라였다면 value값을 바로 어레이에 push 했겠지만 value 값을...currentArray로 복사한 배열 값에 추가하는 방식으로 진행해야한다

 <ul>
        {toDos.map((item, i) => (
          <li key={i}>{item}</li>
        ))}
      </ul>
 

맵으로 생성한 li 값안에 유니크한 key값을 넣는다

'프로그래밍 > ReactJS' 카테고리의 다른 글

usestate  (0) 2023.09.11
react) cointracker  (0) 2023.09.08
react)useState 기초 버튼 클릭할 때마다 카운트하기  (0) 2023.08.30
React 컴포넌트  (0) 2023.08.22
REACT 설치  (0) 2023.08.21