BlueBaseJS / BlueBaseJS/core

Component Memoization Support

Abierto
#9 0 comentarios 0 reacciones 0 asignados Ver en GitHub
enhancement
Lenguaje dominante
TypeScript
Estrellas
3
Forks
1
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

## Requirements

To improve the performance of BlueRain projects, we need to figure out a way to add component memoization. This means for some components if they are passes same props, again and we expect the same output every time, we don't need to process the render again. We instead return a previous render result, that was cached during the first render.

## Approach

The simplest solution at this time seems to be as follows:
- Add a cache or memoize property for each component in registry.
- During component resolution, for every component that has cache (or memoize) property set to ture, just wrap the component in an hoc from one a memoize library (e.g. [moize](https://github.com/planttheidea/moize)

## Not Doing

- Implementing custom memoization logic

## Possible Memoize libraries

- [moize](https://github.com/planttheidea/moize)

## Useful Links

- https://medium.com/@planttheidea/memoize-react-components-33377d7ebb6c

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

El issue no menciona archivos, pruebas ni puntos de entrada. Empieza localizando el registro de componentes y la ruta de resolución de componentes en el código TypeScript; después, evalúa el flag de registro propuesto y el wrapper de memoización externo. Se considera terminado cuando el enfoque seleccionado admite componentes memoizados sin lógica de memoización personalizada.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
typescript
Área
performance
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.