React/영화웹서비스만들기
간단한 to-do List 만들기 (1)
냠냠쿠
2024. 4. 18. 13:25
728x90
1. input만들기
import { useEffect, useState } from "react";
function App() {
const [toDo, setToDo] = useState("");
const onChange = (event) => setToDo(event.target.value);
console.log(toDo);
return (
<div>
<input
onChange={onChange}
value={toDo}
type="text"
placeholder="Write your to do..."
/>
</div>
);
}
export default App;
2. input을 form에 넣어주고 버튼 추가하기
function App() {
const [toDo, setToDo] = useState("");
const onChange = (event) => setToDo(event.target.value);
console.log(toDo);
const onSubmit = (event) => {
event.preventDefault();
console.log(toDo);
};
return (
<div>
<form onSubmit={onSubmit}>
<input
onChange={onChange}
value={toDo}
type="text"
placeholder="Write your to do..."
/>
<button> add to do</button>
</form>
</div>
);
}
button을 클릭했을 때 새로고침이 되는 것을 막기위해 onSubmit 함수를 추가하여
event.preventDefault(); 추가
3. 엔터 누르면 input 초기화 시키기
const onSubmit = (event) => {
event.preventDefault();
console.log(toDo);
if (toDo === "") {
return;
}
//setToDo 비우기
setToDo("");
};
4. 입력 누르면 배열에 추가하기
import { useEffect, useState } from "react";
function App() {
const [toDo, setToDo] = useState("");
const [toDos, setToDos] = useState([]);
const onChange = (event) => setToDo(event.target.value);
const onSubmit = (event) => {
event.preventDefault();
console.log(toDo);
if (toDo === "") {
return;
}
setToDos((currentArray) => [toDo, ...currentArray]);
//setToDo 비우기
setToDo("");
};
console.log(toDos);
return (
<div>
<form onSubmit={onSubmit}>
<input
onChange={onChange}
value={toDo}
type="text"
placeholder="Write your to do..."
/>
<button> add to do</button>
</form>
</div>
);
}
export default App;
setToDos((currentArray) => [toDo, ...currentArray]);
에서 ...을 붙이지 않으면 배열안에 배열이 들어가기 때문에 반드시 ...을 붙여줘야 해당 배열에 추가가 된다.
5. To do List 개수 추가해주기
<h1> My To Dos({toDos.length}) </h1>
728x90