Skip to main content

js-tosorted-immutable

Use toSorted() instead of sort() to avoid mutating arrays. Apply when sorting arrays that are React props, state, or otherwise shared/referenced elsewhere.

Datos de origen

Repositorio
TheOrcDev/8bitcn-ui
Última actividad en el origen
16 de enero de 2026 a las 09:09
Idioma detectado de SKILL.md
inglés
Estrellas
2061
Forks
119

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
js-tosorted-immutable
description
Use toSorted() instead of sort() to avoid mutating arrays. Apply when sorting arrays that are React props, state, or otherwise shared/referenced elsewhere.
## Use toSorted() Instead of sort() for Immutability `.sort()` mutates the array in place, which can cause bugs with React Use `.toSorted()` to create a new sorted array without state and props. mutation. **Incorrect (mutates original array):** ```typescript function UserList({ users }: { users: User[] }) { // Mutates the users prop array! const sorted = useMemo( () => users.sort((a, b) => a.name.localeCompare(b.name)), [users] ) return <div>{sorted.map(renderUser)}</div> } ``` **Correct (creates new array):** ```typescript function UserList({ users }: { users: User[] }) { // Creates new sorted array, original unchanged const sorted = useMemo( () => users.toSorted((a, b) => a.name.localeCompare(b.name)), [users] ) return <div>{sorted.map(renderUser)}</div> } ``` **Why this matters in React:** 1. Props/state mutations break React's immutability model - React expects props and state to be treated as read-only 2. Causes stale closure bugs - Mutating arrays inside closures (callbacks, effects) can lead to unexpected behavior **Browser support (fallback for older browsers):** `.toSorted()` is available in all modern browsers (Chrome 110+, Safari 16+, Firefox 115+, Node.js 20+). For older environments, use spread operator: ```typescript // Fallback for older browsers const sorted = [...items].sort((a, b) => a.value - b.value) ``` **Other immutable array methods:** - `.toSorted()` - immutable sort - `.toReversed()` - immutable reverse - `.toSpliced()` - immutable splice - `.with()` - immutable element replacement
Ver en GitHub