State
State란 무엇인가?
💡 State란 컴포넌트 내부에서 바뀔 수 있는 값을 의미합니다.
우리가 앞에서 name이라는 정보를 const name = “홍부인”; 이라고 만들었는데, 만약 name이라는 값이 바뀌어야만 하는 정보였어야 했다면 state로 생성합니다.
State 만들기
State를 만들 때는 useState()를 사용한다.
그때, state가 변했는지 변하지 않았는지 확인하는 방법이 state의 변화 전, 후의 **메모리 주소를 비교합니다.** 그래서 만약 리액트에서 원시데이터가 아닌 데이터를 수정할 때 불변성을 지켜주지 않고, 직접 수정을 가하면 값은 바뀌지만 메모리주소는 변함이 없게 되는것이죠. 그래서 즉, 개발자가 값은 바꿨지만 리액트는 state가 변했다고 인지하지 못하게 됩니다. 그래서 결국 마땅히 일어나야 할 리렌더링이 일어나지 않게되죠.
- (5) 리액트 불변성 지키기 예시
- 배열을 setState 할 때 불변성을 지켜주기 위해, 직접 수정을 가하지 않고 전개 연산자를 사용해서 기존의 값을 복사하고, 그 이후에 값을 수정하는 식으로 구현합니다.
import React, { useState } from "react";
function App() {
const [dogs, setDogs] = useState(["말티즈"]);
function onClickHandler() {
// spread operator(전개 연산자)를 이용해서 dogs를 복사합니다.
// 그리고 나서 항목을 추가합니다.
setDogs([...dogs, "시고르자브르종"]);
}
console.log(dogs);
return (
<div>
<button onClick={onClickHandler}>버튼</button>
</div>
);
}
export default App;
'내일배움캠프[4기_Reac트랙] > [원격]React_숙련' 카테고리의 다른 글
Counter구현[숙련_4] (0) | 2022.12.18 |
---|---|
모듈생성,스토어연결,useSelector[숙련_3] (0) | 2022.12.18 |
Redux start![숙련_2] (0) | 2022.12.18 |
What's Redux?[숙련_1] (0) | 2022.12.18 |
Props[내배캠] (0) | 2022.12.15 |