To do list - CRD

sang one leee·2023년 3월 30일
0

React 이모저모

목록 보기
1/8
post-thumbnail

React.js로 to do list 만들기

import { useState } from "react";

const TodolistPage = () => {
  const [todotext, setTodoText] = useState("");
  const [todolist, setTodoList] = useState([]);

  const handletoChange = (e) => {
    setTodoText(e.target.value);
  };

  const handletoSubmit = (e) => {
    if (todotext === "") {
      alert("Write to do!");
    } else {
      const tempTodoList = todolist;
      setTodoList([...tempTodoList, todotext]);
      setTodoText("");
    }
  };

  const handletoDelete = (e) => {
    const targetindex = Number(e.currentTarget.dataset.index);
    const tempTodoList = todolist.filter(
      (text, index) => index !== targetindex
    );
    setTodoList(tempTodoList);
  };

  return (
    <div>
      <h2>Todo List</h2>
      <ul>
        {todolist.map((text, index) => (
          <li key={`${text}_${index}`}>
            {text}
            <button data-index={index} onClick={handletoDelete}>
              x
            </button>
          </li>
        ))}
      </ul>
      <input
        type="text"
        value={todotext}
        placeholder="할 일을 입력해주세요"
        onChange={handletoChange}
      ></input>
      <button onClick={handletoSubmit}>확인</button>
    </div>
  );
};

export default TodolistPage;

delete 기능 시 지워야하는 <li>를 지정하기 위해 data-이름 형태로 dataset을 DOM에 저장하여 onClick.currentTarget.dataset.이름 으로 타켓팅하여 delete 기능을 실행한다.


실행화면

빈 텍스트 입력시 내용을 쓰라는 alert 창을 띄운다.

list 작성과 delete 기능

profile
코린이 화이팅

0개의 댓글