Form Data 더 쉽게 다루기
적용한 토이 프로젝트
https://github.com/JEONGHWANMIN/raect-json-server
평소 내가 작성하던 방식
평소에는 각각의 useState()를 작성해 놓고 나서
onChange() 를 이용해서 각각 setWriter , setTitle , setText 이런식으로
이벤트를 다뤘었는데 오늘 좀더 새로운 방식을 공부 했는데
신선하고 좀 더 가독성이 좋은거 같아서
정리해 보려고 한다.
<전>
const [writer, setWriter] = useState("")
const [title, setTitle] = useState("")
const [text, setText] = useState("")
const onChange = (e) => {
const { name } = e.target
if (name === 'writer') {
setWriter(e.target.value)
} else if (name === 'title') {
setTitle(e.target.value)
} else if (name === 'text') {
setText(e.target.value)
}
이 코드를 새로 배운 방식을 적용해서 좀 더 깔끔하게 적용하면
<후>
const [formData , setFormData] = useState({
writer : "",
title : "",
text : ""
})
const {writer , title , text} = formData
const onChange = (e) => {
setFormData((preState) => ({
...preState,
[e.target.name] : e.target.value
}))
}
이런식으로 정리 할 수 있다.
각각 input tag name에 해당하는 값을 넣어줘야 작동한다.
이렇게 작동하는 원리가
어떠한 값이 있는 변수를 []로 감싸면 key값으로 인식해서
그 키 값에 값을 넣는 원리이다.
Result
{object} 객체 안에서 [key]로 변수에 있는 변수값을 이용해서
좀더 쉽게 Form 요소를 조작 할 수 있다.
{[key] : value}
'FrontEnd > React' 카테고리의 다른 글
[React] Styled Component 활용해서 컴포넌트 재사용 한 후기 (0) | 2022.07.07 |
---|---|
cannot appear as a descendant of 에러 (0) | 2022.02.26 |
[React] styled-components , styled-reset (0) | 2022.02.20 |
React 에서 JsonServer 사용 , axios로 데이터 넣기 (0) | 2022.02.16 |
[React] react-router-dom 설치 (Ing...) (0) | 2022.02.15 |