[React] 18 Version useId hook
2022. 12. 6. 13:43ㆍReact
18버전의 새로운 hook 이 추가 됐다.
공식문서에 따르면, 수화 불일치를 피하면서 서버와 클라이언트에서 안정적인 고유 ID를 생성하기 위한 후크입니다.
토큰 을 포함하는 문자열을 생성하고, 이렇게 하면 토큰이 고유한지 확인하는 데 도움이 되지만
CSS 선택기와 같은 API에서는 지원되지 않습니다.
useId 언제 사용 할까?
- 입력이 있는 레이블과 같이 두 개의 HTML 요소를 함께 연결하는 데 사용합니다.
- 매번 고유 ID를 생성해야 하는 곳에 사용하세요.
- 동일한 생성 ID를 여러 번 사용하려면 접두사 또는 접미사를 사용하세요.
사용하면 안될 때
- useId CSS 선택기 에 후크를 사용하지 마십시오.
- 목록의 키에 사용하지 마십시오.
- 변경해서는 안 되는 값에는 사용하지 마십시오.
사용법은 간단하다 기존 훅 처럼 상단에 import
import React, { useId } from 'react';
const id = useId();
const id2 = useId();
useEffect(() => {
const myComponentDOMElement1 = document.querySelector(`[id="email-${id}"]`); // this will work
const myComponentDOMElement2 = document.querySelector(`[id="password-${id}"]`); // this will work
console.log(myComponentDOMElement1);
console.log(myComponentDOMElement2);
const myComponentDOMElement3 = document.querySelector(`[id="email-${id2}"]`); // this will work
const myComponentDOMElement4 = document.querySelector(`[id="password-${id2}"]`); // this will work
console.log(myComponentDOMElement3);
console.log(myComponentDOMElement4);
}, []);
return (
<>
<React.Fragment>
<label htmlFor={`email-${id}`}>Email</label>
<input type="text" id={`email-${id}`} name="email" />
<label htmlFor={`password-${id}`}>Password</label>
<input type="password" id={`password-${id}`} name="password" />
</React.Fragment>
<React.Fragment>
<label htmlFor={`email-${id2}`}>Email</label>
<input type="text" id={`email-${id2}`} name="email" />
<label htmlFor={`password-${id2}`}>Password</label>
<input type="password" id={`password-${id2}`} name="password" />
</React.Fragment>
</>
)
'React' 카테고리의 다른 글
[React] HOC 고차 컴포넌트 (0) | 2022.08.26 |
---|---|
[React] SEO (Search Engin Optimiztion) (0) | 2022.01.27 |
[React] 카운트 다운 함수 ( moment 라이브러리 사용 ) (0) | 2021.11.02 |
[React] 환경변수 사용하기 (0) | 2021.10.25 |
[React] i18n 다국어 지원하기 (0) | 2021.09.08 |