7주 - Todo-앱 추가
React Curve 7주차에 오신 것을 환영합니다
개발자님 안녕하세요! 다시 만나 반갑습니다.
대규모 프로젝트를 구축하기 위한 개념을 이해한 방식으로 작은 UI 구성 요소를 공유하고 생성할 수 있는 반응 곡선 오픈 소스 프로젝트입니다.
Todo-추가 앱
이번 주에 우리는 todo-add 앱을 만들었습니다. 사용자가 반응형 양식에 작업을 추가할 수 있는 앱입니다.
Todo-Add 컴포넌트를 생성하려면 우리는 다음을 수행해야 합니다.
암호
TodoAddV1 구성 요소
import React, {useState} from 'react';
import ItemForm from './ItemForm';
import PrintItems from './PrintItems';
const TodoAddV1 = () => {
const [lists, setLists] = useState([])
const handleAddItem = (item) => {
item.id = lists.length + 1
setLists([...lists, item])
}
return (
<div>
<h2>Add to Todo</h2>
<ItemForm addItem={handleAddItem} />
<PrintItems lists={lists} />
</div>
);
}
export default TodoAddV1;
아이템폼 컴포넌트
import React, {useState} from 'react';
const ItemForm = (props) => {
const initialFormState = { id: null, name: '' }
const [item, setItem] = useState(initialFormState)
const handleInputChange = (ev) => {
const { name, value } = ev.target
setItem({ ...item, [name]: value })
}
const handleSubmit = (ev) => {
ev.preventDefault()
if (!item.name) return
props.addItem(item)
setItem(initialFormState)
}
return (
<>
<form onSubmit={handleSubmit}>
<label>Enter Item</label> <br />
<input
type="text"
name="name"
value={item.name}
onChange={handleInputChange}
/>
<br />
<button>Add new item</button>
</form>
</>
);
}
export default ItemForm;
PrintItems 구성 요소
import React from 'react';
const PrintItems = (props) => {
return (
<div>
{props.lists.length > 0 ? (
props.lists.map((item) => (
<ul key={item.id}>
<li>{item.name}</li>
</ul>
))
) : (
<div>
No items
</div>
)}
</div>
);
}
export default PrintItems;
결론
읽어 주셔서 감사합니다. 아래 스레드에서 어떤 기여도 환영합니다!
Live Preview
Reference
이 문제에 관하여(7주 - Todo-앱 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/this_mkhy/week-7-todo-add-app-45lc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)