<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f765100f-b481-437e-b531-5aae8d9bc5fe/1200px-React-icon.svg.png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f765100f-b481-437e-b531-5aae8d9bc5fe/1200px-React-icon.svg.png" width="40px" /> Velopert's Modern React
</aside>
목차
배열을 컴포넌트에 반영해보기 (기본)
const users = [
{
id: 1,
username: "kim",
email: "[email protected]"
},
{
id: 2,
username: "kim",
email: "[email protected]"
},
]
return (
<div>
{users.map(user => (
<User user={ user } key={ user.id } />
// key 값이 고유한 id로 가지는 것을 알 수 있다.
)}
</div>
)
useRef 확장해서 사용해보기
useRef는 컴포넌트 안에서 '조회', '수정' 할 수 있는 변수를 관리하는 목적으로 사용할 수 있다. 중요하고도 혁신적인 것은 useRef로 관리하는 변수는 값이 바뀐다고 해서 리랜더링이 일어나지 않는다는 점이다. 위의 코드에서 새로운 항목으로 추가되는 유저 정보의 'id' 값을 ref로 관리해보자.
App.js
const nextId = useRef(4);
// -> useRef를 사용할 때 안에 인자로 값을 넣어주면 이 값이 .current의 기본값이 된다.
...
onCreate = () => {
...
nextId.current += 1;
}
setState의 기능을 이용해서 배열에 값 추가, 제거, 수정하기
추가하기
user에게 받은 정보를 바탕으로 배열의 state를 수정하기 위해서는 기본적으로 배열을 useState로 상태관리 해야 한다. 다음으로는 들어온 정보를 배열에 한 요소로 넣어주어야 하는데, 여기서 우리는 '배열의 불변성'을 잘 지켜야 한다. ...spread operator 기법이나 concat 같은 메소드를 활용해주면 된다.