Deeb
디비의 DB
Deeb
전체 방문자
오늘
어제
  • 분류 전체보기 (243)
    • Frontend (63)
      • HTML & CSS (27)
      • JavaScript (17)
      • jQuery (8)
      • React (6)
    • Backend (98)
      • Java (19)
      • JDBC (2)
      • Servlet & JSP (13)
      • Spring (17)
      • Project (0)
      • 개발 공부 (11)
      • 문제 풀이 (8)
      • Algorithm (1)
      • DataBase (0)
      • Oracle (18)
      • Error (8)
    • Knou (1)
    • Review (14)
    • TIL (33)
    • 삽질기록 (8)
    • deebtionary (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • CLASS
  • 서평단
  • For
  • 방통대
  • Java
  • 책
  • 기초
  • 함수
  • 2학기
  • css
  • 한빛미디어
  • 자바
  • DB
  • 추천
  • 삭제
  • 에러
  • 후기
  • 배열
  • 정의
  • 클래스
  • js
  • 공부
  • HTML
  • 리액트
  • 다형성
  • 방송대
  • DBMS
  • alter
  • GIT
  • 정처기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Deeb

디비의 DB

냅다 함수 :: React로 투두리스트 만들기 (ft.preventDefault)
TIL

냅다 함수 :: React로 투두리스트 만들기 (ft.preventDefault)

2022. 6. 29. 09:34

이번에 외운 함수는 리액트로 만든 투두리스트입니다. 

 

기능

- input 창에 글자를 입력하면 onChange된 내용을 감지한다.

- add 버튼을 누르면 toDos 배열에 저장되고 저장된 개수를 h1에서 확인할 수 있다. 

 

코드

<!DOCTYPE html>

<body>
  <div id="root"></div>
</body>

<script src="https://unpkg.com/react@17/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js" crossorigin></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script type="text/babel">
  function App() {
    const [toDo, setToDo] = React.useState("");
    const [toDos, setToDos] = React.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>to do list ({toDos.length})</h1>
        <form onSubmit={onSubmit}>
          <input 
          type="text"
          value={toDo}
          onChange={onChange}
          placeholder="write your to do list"
          />
          <button>add</button>
        </form>
      </div>
    )
  }

  const root = document.getElementById('root');
  ReactDOM.render (<App/>, root);
</script>

</html>

 

냅다 외우고 써보기

 

 

 

참고로 녹화를 끝내고 실행해봤더니 length에 오타가 있어서 실행이 안됐다... 오타 조심

 

 

정리

Event.preventDefault()
어떤 이벤트를 명시적으로 처리하지 않은 경우, 해당 이벤트에 대한 사용자 에이전트의 기본 동작을 실행하지 않도록 지정합니다. 라고 하는데 읽어도 동작하는 방법이 이해되지 않는다.

 

예제에서 쓰인 이유는 form 태그 안에서 <button> type이 'submit'인데 실행하게 되면 창이 새로고침이 된다. 그때 preventDefault ()가 새로고침되는 것을 막아주면서 submit은 된다. 

 

 

  

 

반응형
저작자표시 변경금지 (새창열림)

'TIL' 카테고리의 다른 글

프로젝트 회고 2 :: 기능부터 컨벤션까지 정해야 할게 너무 많아요.  (0) 2022.07.06
프로젝트 회고 1 :: 프론트엔드 프로젝트는 어떻게 해야하죠?  (0) 2022.06.30
냅다 함수 :: React로 시계 만들기  (0) 2022.06.22
냅다 외우기 :: [JS] 소수판별  (0) 2022.06.20
발표 절대 못 한다던 내가 첫 연사를 마친 소감  (0) 2022.06.09
    'TIL' 카테고리의 다른 글
    • 프로젝트 회고 2 :: 기능부터 컨벤션까지 정해야 할게 너무 많아요.
    • 프로젝트 회고 1 :: 프론트엔드 프로젝트는 어떻게 해야하죠?
    • 냅다 함수 :: React로 시계 만들기
    • 냅다 외우기 :: [JS] 소수판별
    Deeb
    Deeb

    티스토리툴바