[Controlled Component] 서로 같은 변화를 담당하는 HTML 요소들은 같은 출처의 state 변수를 value로 갖는다
2020. 5. 24. 18:33ㆍ컴퓨터언어/React JS
728x90
반응형
React를 사용한다면,
HTML 요소들을 <div> 태그로 묶어 한번에 렌더링할 때 어떤 변수의 값에 따라 UI가 변하기 마련이다.
여기서 "어떤 변수"는 보통 <form>의 <input>을 통해 유저로부터 받은 값을 <h1> 같은 태그에 업데이트 시키는 데 사용되는 변수, 즉 state 변수를 의미한다. (ex. isLogin의 값이 true일 때 버튼의 value가 logout으로 바뀐다면, 여기서 state변수는 isLogin)
이때 업데이트 value를 담은 <input>과 value를 반영한 <h1>은 같은 state 변수로 통일해야 한다.
이를 "신뢰 가능한 단일 출처"라고 한다.
// App.jsx
import React, { useState } from "react";
function Login() {
const [isLogin, setLogin] = useState(false);
function changeAuthStatus() {
setLogin(!isLogin);
};
return (
<div>
<h1>{isLogin? "Hello" : "Please Login"}</h1>
<button onClick={changeAuthStatus} value={isLogin}>{ isLogin ? "Logout" : "Login" }</button>
</div>
);
}
export default Login;
신뢰 가능한 단일 출처는 React가 DOM의 변화를 추적하는 중 가장 최신의 값을 해당 HTML 태그의 value와 언제나 동기화시킴으로써, 확실한 상태관리를 보장해준다.
728x90
반응형
'컴퓨터언어 > React JS' 카테고리의 다른 글
[Spread Operator] ...을 이용하여 서로 다른 배열이나 객체를 합치자 (0) | 2020.05.24 |
---|---|
[Complex State] useState가 중복되면 {}로 관리한다 (0) | 2020.05.24 |
[Hook] 유저와의 UI 반응을 위한 상태관리 with Functional Components (0) | 2020.05.23 |
[Map Function] 배열의 원소마다 함수를 각각 실행시켜주자 (0) | 2020.05.19 |
[props] HTML 태그에서 attribute를 사용하듯, JSX 태그에서 커스텀속성 사용하기 (0) | 2020.05.19 |