React Hook useState가 const를 사용하고,
React useState Hook을 사용하는 표준 방법은 다음과 같습니다.
const [count, setCount] = useState(0);
단, 이것은const count변수는 분명히 다른 원시 값으로 재할당됩니다.
그러면 변수가 다음과 같이 정의되지 않는 이유는 무엇입니까?let count?
분명히 다른 원시적 가치로 재할당될 것이다
사실 그렇지 않아요.컴포넌트가 재렌더되면 함수가 다시 실행되어 새 스코프가 생성되고 새 스코프가 생성됩니다.countvariable. 이전 변수와는 무관합니다.
예:
let _state;
let _initialized = false;
function useState(initialValue) {
if (!_initialized) {
_state = initialValue;
_initialized = true;
}
return [_state, v => _state = v];
}
function Component() {
const [count, setCount] = useState(0);
console.log(count);
setCount(count + 1);
}
Component();
Component(); // in reality `setCount` somehow triggers a rerender, calling Component again
Component(); // another rerender
주의: 후크는 훨씬 더 정교하며 실제로 이와 같이 구현되지 않습니다.이것은 단지 유사한 행동을 보여주기 위한 것입니다.
const는, 같은 범위내에서 참조의 값을 재할당하지 않게 하기 위한 가드입니다.
변수 식별자를 재할당할 수 없는 값일 뿐, 보유하는 값이 불변수 식별자를 재할당할 수 없습니다.
또한.
상수는 동일한 범위의 함수 또는 변수와 이름을 공유할 수 없습니다.
정확히 새로운 값을 할당하는 것은 아닙니다.useState는 단순히 상태 갱신 함수입니다.값 변경은 React에 의해 다른 곳에서 관리되기 때문에 여기서 Const가 사용됩니다.즉, React에게 useState에 문의하여 가치를 관리하도록 지시하는 것입니다.
setCount를 호출한 후 컴포넌트가 재렌더되고 useState의 새 호출이 새 값을 반환합니다.요점은 카운트는 불변이라는 것이다.여기 오타가 없어요.
엄밀히 말하면 모든 렌더링에서 새로운 변수입니다.
출처: React Github 문제: Docs - Hooks: 계속 오타입니까?
카운트가 바뀌어야 하기 때문에 여기서 나는 경찰이 답답하다는 것을 알았다.
let [count, setCount] = useState(0)
// simply can't use ++ on either side of count increment given we declare as const [count, setCount]
// instead declaration of var or let [count, setCount] allows simpler code
const increment = () => {
setCount(count++); //const cannot do this only let or var
};
언급URL : https://stackoverflow.com/questions/58860021/why-react-hook-usestate-uses-const-and-not-let
'programing' 카테고리의 다른 글
| 메인 어플리케이션에서 Spring Boot을 호출하는 서비스를 호출하는 방법 (0) | 2023.03.26 |
|---|---|
| Java 7에서 org.json Java 라이브러리를 사용하는 방법 (0) | 2023.03.26 |
| 요청 헤더 jQuery Ajax 설정 (0) | 2023.03.26 |
| React와 함께 Redx의 프로바이더를 사용하는 방법 (0) | 2023.03.26 |
| ORA-00932: 일치하지 않는 데이터 유형: 예상됨 - CLOB가 있음 (0) | 2023.03.26 |