Math.random를 key로 사용 가능?!
key는 반드시 변하지 않고, 예상 가능하며, 유일해야 함.
변하는 key(Math.random()으로 생성된 값 등)를 사용하면 많은 컴포넌트 인스턴스와 DOM 노드를 불필요하게 재생성하여 성능이 나빠지거나 자식 컴포넌트의 state가 유실될 수 있음.
nanoid를 key로 사용 가능?!
nanoid 와 같은 unique한 값을 만들어 사용하는 방식은 nanoid에서도 지양.
클라이언트 레벨에서 nanoid를 리렌더링시 매번 만드는 작업이 위 Math.random과 같은 이유로 사용을 금지.
useId key로 사용 가능?!
react docs에서는 useId를 key로 사용하는 것을 권장하지 않음.