728x90
728x90
uuid, nanoid 라이브러리 사용하기 (key)
들어가며
- 다음과 같이
map
을 이용하여 요소를 하나하나씩 표현할 경우key
값을 지정해야 하는데 어떤값을key
값으로 지정해야할 지 모를 경우가 많다. - 이때,
uuid
또는nanoid
라이브러리를 이용하면 이 고민을 해결할 수 있다.
import { data } from './data.js'; export default const App = () => { return ( <ul> {data.map((item) => <li key={...}>{item.content}</li>} </ul> ) }

uuid 라이브러리
개념
uuid
는 Universally Unique Identifier 의 약자로, 전 세계에서 고유한 값을 생성할 수 있는 식별자이다.uuid
는 주로 데이터베이스 키, 파일 이름, 트랜잭션 ID 등을 생성할 때 사용된다.uuid
는 여러 버전이 있지만 주로v4
가 많이 사용된다.v4
는 무작위로 UUID를 생성한다.
라이브러리 설치
$ npm install uuid # yarn add uuid
사용법
import { v4 as uuidv4 } from 'uuid'; uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
사용 예제
import { v4 as uuidv4 } from 'uuid'; import { data } from './data.js'; export default const App = () => { return ( <ul> {data.map((item) => { const id = uuidv4(); // 고유한 uuid 생성하기 return (<li key={id}>{item.content}</li>); } </ul> ) }
nanoid 라이브러리
개념
- 자바스크립트 환경에서 고유하고 짧은 ID를 생성하기 위한 경량 라이브러리
- 성능과 보안에 중점을 두고 설계되어, 고유한 식별자를 생성하는 데 매우 빠르고 안전하다.
- 보통
uuid
가 널리 사용되지만,nanoid
는 더 짧고 효율적인 대안으로 주로 웹 개발에서 식별자(ID)를 생성할 때 사용된다.
라이브러리 설치
$ npm install nanoid # yarn add nanoid
사용법
import { nanoid } from 'nanoid' model.id = nanoid() //=> "V1StGXR8_Z5jdHi6B-myT"
사용 예제
import { nanoid } from 'nanoid'; import { data } from './data.js'; export default const App = () => { return ( <ul> {data.map((item) => { const id = nanoid(); // 고유한 id 생성하기 return (<li key={id}>{item.content}</li>); } </ul> ) }
참고 사이트
uuid
RFC9562 UUIDs. Latest version: 10.0.0, last published: 3 months ago. Start using uuid in your project by running . There are 65154 other projects in the npm registry using uuid.
www.npmjs.com
nanoid
A tiny (116 bytes), secure URL-friendly unique string ID generator. Latest version: 5.0.7, last published: 5 months ago. Start using nanoid in your project by running . There are 10318 other projects in the npm registry using nanoid.
www.npmjs.com
728x90
728x90
'Programming > React' 카테고리의 다른 글
[React.js] useCallback 훅 (0) | 2024.09.20 |
---|---|
[React.js] React.memo() (0) | 2024.09.18 |
[React.js] Context API를 이용하여 전역 상태 관리하기 (2) | 2024.09.11 |
[React.js] react-toastify 라이브러리 (0) | 2024.09.10 |
[React.js] 로컬 스토리지(LocalStorage)에 내용을 저장하고, 전역 상태 관리 라이브러리(Redux)와 동기화 하는 방법 (1) | 2024.09.07 |
[React.js] 컴포넌트를 생성하는 방법 2가지 (JSX, React.createElement) (0) | 2024.08.26 |
[React.js] 리액트 스니펫(Snippet) 정리 (0) | 2024.08.26 |
[React.js] Create React App과 Vite (0) | 2024.08.26 |