♪ ♪ Entonces, sí, quiero hablarles sobre patterns para performance, porque supongo que ya hemos visto algunas charlas hoy que han estado hablando sobre performance, y como desarrollador de React, eso es algo clave que a muchos de nosotros siempre, supongo, nos importa, importante para nuestros usuarios. Por eso quiero compartir esto con ustedes hoy.
Como trabajo para Azure Grid, habrá algunas cuadrículas presentadas en esta charla. Entonces, ¿puedes decir cuál de estas cuadrículas es mejor? Tenemos la de arriba donde estás redimensionando y está, ya sabes, saltando, o tienes la de abajo donde tienes este redimensionamiento suave. Entonces creo que es obvio cuál querrían usar nuestros usuarios y con cuál querrías trabajar. Y entonces esto es algo en lo que vamos a profundizar y decir cómo resolvimos este problema.
Entonces, como ya saben, trabajo en Azure Grid y nuestra misión es crear la mejor tabla de data de JavaScript o React en el mundo. Entonces, ya sabes, tenemos una versión gratuita. Tenemos versiones enterprise. Así que vengan y descubran más sobre esto porque creemos que es un producto brillante y está mejorando y realmente estamos invirtiendo mucho en nuestro componente React. Así que esperamos que puedan probarlo, pero eso es suficiente sobre Azure Grid. Quieren saber sobre performance.
Entonces, para, supongo, darnos una historia para esta charla, queremos tener esta reconstrucción donde un usuario ha comenzado a usar Azure Grid, una versión muy antigua, que ya no tiene este problema, y dijeron, oh, ya sabes, cuando uso este componente personalizado, la cuadrícula hace este redimensionamiento realmente lento. Entonces piensan, oh, está bien, pero también dicen, bueno, es cuando están usando un renderizador de celdas personalizado. Entonces, para darles, supongo, el trasfondo que necesitan, los renderizadores de celdas personalizados son una forma para ustedes como desarrolladores de React de dar a nuestra cuadrícula un componente funcional o un componente de clase y decir renderiza esto dentro de cada celda. Entonces aquí tenemos una tabla de clima donde en lugar de números, tienes pictogramas basados en cuántos días de sol. Y eso sería su propio componente de React. Entonces, en el caso de uso, tienen que están mostrando un total. Entonces podrían tener un renderizador como este, donde en el cuerpo de su renderizador, tienen una lógica realmente compleja, que es realmente lenta. Y luego simplemente están devolviendo un valor. Quiero decir, esto no va a ser lento, pero solo vayan conmigo y espero que demuestre lo que estamos tratando de mostrar aquí. Y luego para usar este renderizador de celdas, lo pasan a la cuadrícula de esta manera. Encontraremos eso en su columna diciendo, bueno, en realidad renderiza esto con mi renderizador y pásalo al componente AG grid. Entonces volvemos a esta etapa y pensamos, bueno, ¿cómo vamos a resolver este problema? Porque aún no lo hemos notado. Si queremos diagnosticar por qué es lento, necesitamos dar un paso atrás y pensar, bueno, en el caso normal, cuando funciona rápido, ¿cómo se comporta la cuadrícula en esa situación? Entonces tomamos un punto de referencia. Esta es la cuadrícula estándar, sin renderizadores de celdas, y se redimensiona muy suavemente. Vamos a usar el perfilador de React DevTools y lo perfilamos y obtenemos algo como esto. Entonces, mientras estamos redimensionando la columna, tenemos 254 renders en marcha. Eso es un montón de renders, pero son renders realmente rápidos. Por eso no estás viendo realmente ninguna desaceleración a pesar de que hay tantos renders.
Comments