Repolode
reduxjs

reduxjs/reselect

Biblioteca TypeScript para crear funciones selectoras memoizadas que derivan datos de Redux u otro estado de JavaScript simple.

Estrellas
19,005
Forks
666
Issues abiertos
38
Último commit
ayer

¿Qué es?

Reselect ofrece createSelector, que crea funciones «selectoras» memoizadas. Se le pasan uno o más selectores de entrada que extraen valores del estado, y una función de resultado que calcula un valor derivado a partir de ellos. El selector de salida solo vuelve a calcular el resultado cuando cambian esos valores extraídos, y devuelve la misma referencia si nada ha cambiado.

Esto permite que Redux almacene solo el estado mínimo, mientras que los datos derivados se calculan cuando se necesitan. También se pueden componer selectores, de modo que la salida de uno sirva como entrada de otro. Reselect está incluido en Redux Toolkit y también se puede instalar por separado como el paquete reselect.

La biblioteca incluye opciones de memoización como weakMapMemoize, lruMemoize y createSelectorCreator para personalizar el comportamiento, además de comprobaciones disponibles solo en desarrollo para verificar la estabilidad de las entradas y detectar funciones de identidad.

Funciones clave

  • 01Crea selectores memoizados que evitan volver a calcular el resultado si las entradas no cambian.
  • 02Permite componer selectores usando otros selectores como entradas.
  • 03Devuelve referencias estables a los resultados, lo que ayuda a React-Redux y React a evitar renderizados innecesarios.
  • 04Ofrece createStructuredSelector para crear selectores a partir de un objeto de selectores.
  • 05Permite personalizar la memoización mediante createSelectorCreator, lruMemoize y weakMapMemoize.
  • 06Incluye comprobaciones disponibles solo en desarrollo para detectar selectores de entrada inestables y funciones de resultado de identidad.

Casos de uso

  • Derivar datos filtrados o agregados del estado de Redux sin almacenarlos de forma redundante.
  • Proporcionar props a componentes de React mediante React-Redux y evitar renderizados innecesarios.
  • Crear selectores por capas que compongan consultas pequeñas al estado para formar vistas derivadas más amplias.
  • Aplicar estado derivado memoizado a cualquier estructura de datos inmutable de JavaScript simple fuera de Redux.

Inicio rápido

  1. 1

    Instala el paquete independiente con npm

    npm install reselect
  2. 2

    O usa Redux Toolkit, que ya incluye Reselect (no es necesario instalar nada más)

Temas

Preguntas frecuentes

¿Qué es reselect?
Biblioteca TypeScript para crear funciones selectoras memoizadas que derivan datos de Redux u otro estado de JavaScript simple. Reselect ofrece createSelector, que crea funciones «selectoras» memoizadas. Se le pasan uno o más selectores de entrada que extraen valores del estado, y una función de resultado que calcula un valor derivado a partir de ellos. El selector de salida solo vuelve a calcular el resultado cuando cambian esos valores extraídos, y devuelve la misma referencia si nada ha cambiado.
¿reselect es gratuito? ¿Qué licencia tiene?
reselect es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿reselect sigue mantenido?
Mantenimiento activo. El último commit de reselect fue el 21 oct 2026.
¿Para qué puedo usar reselect?
Derivar datos filtrados o agregados del estado de Redux sin almacenarlos de forma redundante. Proporcionar props a componentes de React mediante React-Redux y evitar renderizados innecesarios. Crear selectores por capas que compongan consultas pequeñas al estado para formar vistas derivadas más amplias. Aplicar estado derivado memoizado a cualquier estructura de datos inmutable de JavaScript simple fuera de Redux.
¿Cómo se instala reselect?
Instala el paquete independiente con npm: npm install reselect O usa Redux Toolkit, que ya incluye Reselect (no es necesario instalar nada más)
¿Dónde consigo reselect?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/reduxjs/reselect

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados