🪁react/react 이론정리
setState 메소드는 특별히 컴포넌트의 state 객체를 업데이트하기 위해 설계
하얀성
2024. 1. 5. 08:06
state는 React 컴포넌트에서 상태 관리를 위해 사용되는 특별한 객체이며, setState는 이 객체와 직접적으로 연관되어 있습니다.
setState의 동작 방식:
- State 객체에 접근: setState는 컴포넌트의 현재 state에 접근합니다. 이 메소드는 컴포넌트의 state 속성에 정의된 객체를 대상으로 작동합니다.
- 상태 변경: setState에 전달된 객체 또는 함수는 현재의 state를 변경합니다. 변경 사항은 기존 state에 병합됩니다. 즉, setState에 제공된 객체의 필드만 업데이트되며, 나머지 부분은 그대로 유지됩니다.
- 특별한 메소드: setState는 React 클래스 컴포넌트에 내장된 메소드입니다. 이 메소드는 state 객체와 직접적으로 연결되어 있으며, 다른 일반 객체에는 적용되지 않습니다.
state와 다른 객체들:
- State 객체: state는 컴포넌트의 상태를 나타내며, setState를 통해 관리됩니다. 이 객체는 컴포넌트의 렌더링과 상호작용에 직접적인 영향을 미칩니다.
- 일반 객체 (예: btnStyle): 이러한 객체들은 state와는 다릅니다. 이들은 단순히 컴포넌트 내에서 사용되는 일반 JavaScript 객체로, setState와는 연관이 없습니다.
- state1 객체: 커스텀 이름으로 state 객체를 정의하면 React는 이를 정상적인 상태 객체로 인식하지 못합니다. React 컴포넌트의 상태 관리 시스템은 state라는 정확한 이름의 객체를 찾아 작동합니다. 이것은 React의 규약입니다.
import React, {Component} from 'react'
export default class App extends Component {
state1 = {
}
state = {
todoData: [
{
id:"1",
title:"공부하기",
completed: true
},
{
id:"2",
title:"청소하기",
completed: false
},
],
value: "",
}
btnStyle = {
color:"#fff",
border: "none",
padding: "5px 9px",
borderRadius: "50%",
cursor:"pointer",
float:"right"
};
결론:
따라서, setState가 state 객체를 대상으로 하는 것은, React의 설계에 의해 정해진 것입니다. 이 메커니즘은 컴포넌트의 상태를 안정적으로 관리하고, 상태 변경에 따라 자동으로 컴포넌트를 리렌더링하도록 하는 데 필수적입니다.
다른 일반 객체들은 setState와는 관련이 없으며, 이 객체들을 변경하더라도 컴포넌트는 자동으로 리렌더링되지 않습니다.