5 Años de Construir React Table

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 18 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 18 - 21, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Únete a mí mientras me sumerjo en la historia de React Table y discuto todo lo que me ha enseñado (¡tanto éxitos como fracasos!) desde que construí la primera versión basada en componentes hace 5 años. Cubriremos toneladas de subtemas incluyendo, pero no limitado a: .... toma un respiro ... Headless UI, React Hooks, Advanced TypeScript, Branding & Naming-Things, Build Pipelines, Open Source Software, API Design, React/JavaScript performance y hasta Framework Agnostic Tooling!

This talk has been presented at React Summit 2022, check out the latest edition of this React Conference.

FAQ

React Table es una biblioteca creada inicialmente para manejar de manera eficiente las operaciones y visualizaciones de tablas en aplicaciones React. Fue desarrollada para abordar la falta de una biblioteca adecuada que se integrara bien con React, especialmente cuando se necesitaban personalizaciones y funcionalidades complejas en las tablas.

El Headless UI, implementado en la versión 7 de React Table, resuelve el problema de rigidez al permitir a los desarrolladores tener un control total sobre el renderizado y la estructura de sus componentes de tabla. Esto permite una mayor personalización y adaptabilidad a diferentes necesidades y diseños de UI.

TypeScript proporcionó una manera de manejar mejor los tipos y asegurar un código más robusto y menos propenso a errores. Sin embargo, introducir TypeScript fue un desafío significativo que implicó una curva de aprendizaje y ajustes en la arquitectura de la biblioteca.

TanSeqTable es el nuevo nombre de React Table, evolucionado para ser agnóstico al framework. Esto significa que puede ser utilizado no solo con React, sino también con otros frameworks como Vue, Svelte y Solid, facilitando la implementación de tablas en diferentes tecnologías.

TypeScript ofrece beneficios como la reducción de errores al proporcionar un sistema de tipos más fuerte, mejor autocompletado y asistencia en la refactorización del código, lo que contribuye a un mantenimiento más sencillo y a un código de mayor calidad.

Tanner enfrentó desafíos significativos debido a su falta de experiencia previa con TypeScript, lo que implicó un proceso de aprendizaje intensivo y la necesidad de reescribir gran parte del código para adaptarse a los estándares de TypeScript, aumentando la complejidad del proyecto inicialmente.

La documentación oficial de TypeScript es un recurso excelente para aprender de forma autónoma. Además, se puede buscar ayuda en foros, contribuir o revisar código en proyectos de código abierto, y usar plataformas como Stack Overflow para resolver dudas específicas.

Tanner Linsley
Tanner Linsley
24 min
17 Jun, 2022

Comments

Sign in or register to post your comment.
Video Summary and Transcription
React Table es una biblioteca de tablas popular que comenzó con tablas HTML5 y pasó a React. Enfrentó desafíos con la integración y las solicitudes de los usuarios, lo que llevó al desarrollo de React Table. La introducción del patrón Headless UI y el soporte de TypeScript mejoraron las capacidades y la calidad de la biblioteca. Los genéricos y TypeScript jugaron un papel significativo en la reducción del tamaño del código y la mejora del desarrollo. React Table ahora se está volviendo agnóstico al marco y se está asociando con AG Grid.
Available in English: 5 Years of Building React Table

1. Introducción a React Table y Nozzle

Short description:

Estoy emocionado de estar aquí. Amo React y el código abierto. Hablemos de los últimos cinco años de React Table y lo que he aprendido. En 2015, cofundé Nozzle, una startup que rastrea los resultados de búsqueda de Google. Servimos los datos a los SEOs y a los especialistas en marketing. Tuvimos que lidiar con muchas tablas.

Muy bien. Estoy emocionado de estar aquí. Tengo mucho que cubrir. Estoy con jet lag y cansado, pero tengo que traer la energía, así que ayúdame. Tenemos que traer la energía, ¿de acuerdo? Tengo algunas camisetas que tengo que lanzar rápidamente y algunas personas que van a ayudarme. Así que vamos a ello. Aquí, toma esa también. ¿Alguien quiere una camiseta? ¡Por aquí! Bueno, el que más grite se lleva la camiseta. ¡Sí! ¡Era exactamente la persona! ¡Perfecto! Me voy. Lo siento.

Bien, espero que te guste Jurassic Park. Puede que no te guste al final de mi charla porque, no sé, ya verás. Mi nombre es Tanner Lindsley y estoy aquí porque amo a React y amo el código abierto y estoy un poco adicto a él. Es una mala adicción pero es muy divertida. Normalmente estaría hablando de React Query hoy. No voy a hacer eso. Prefiero hablar de Take It Back Old School, la primera biblioteca que construí de ese tipo y despegó y ahora es React Table. Quiero hablar de los últimos cinco años de React Table y algunas cosas que he aprendido a través de este loco proceso de construir una biblioteca de código abierto y quizás puedas aplicar algo de ello a lo que haces, o quizás no. Es solo una charla divertida. Pero tenemos que volver aún más atrás, hasta 2015.

Fui invitado a cofundar una startup llamada Nozzle con algunos amigos. Y Nozzle es básicamente Google pero contra Google. Estamos rastreando inversamente los resultados de búsqueda de Google a scale. Estamos hablando de miles de millones de resultados al día. Los estamos midiendo y extrayendo todos los data y simplemente metiéndolos en BigQuery, créelo o no, y devolviéndolos a los SEOs y a los especialistas en marketing que quieren esos data. Es bastante genial. Parte de ese producto es que tenemos que hacer mucha data visualization, muchas consultas, y por supuesto muchas tablas. Está empezando a unirse ahora. Ojalá nuestras tablas en 2015 se parecieran a esto. No lo hicieron.

Read also

2. Transición de tablas HTML5 a Angular y React

Short description:

Comenzamos con tablas HTML5 y luego pasamos a Angular. Finalmente, cambiamos a React y enfrentamos el desafío de no tener una biblioteca de datagrid. Afortunadamente, aggrid tenía un adaptador de React, lo que nos salvó. Pudimos migrar y seguir utilizando aggrid, pero encontramos algunos problemas menores. React facilitó todo con su enfoque basado en componentes.

Estábamos trabajando con una tecnología un poco menor aquí. No exactamente como esto, pero aquí es donde todo comienza. Todos comienzan con la tabla HTML5 porque es increíble. Realmente es un gran elemento. Intenta construir una tabla con divs y lo apreciarás.

Necesitábamos enviar y vender y, con suerte, como Sweizek Teller pudo enseñarnos, tener la oportunidad de mejorar. Así que era como ir, ir, ir tan rápido como pudiéramos. Estábamos usando Angular en ese momento. Booo. Y estábamos usando herramientas como ngGrid y uigrid, que honestamente eran fantásticas. Fueron construidas en Angular, como para Angular, gran integración, y finalmente llegamos a usar aggrid, que también es una herramienta increíble. Ahí vamos, tenemos algunos fans de aggrid.

Entonces sucedió algo que no esperábamos. Este framework aparece de la nada, y es como, esto es todo. Aquí es donde necesitas estar. Y nosotros estábamos como, OK, hagámoslo. Tiempo de inversión. Pasamos todo a React. Estoy hablando de todo, en unas tres semanas. Y luego llegamos allí y estamos como, mierda. No tenemos una biblioteca de datagrid. Y yo estaba como, espera, espera, espera, espera. aggrid tiene un adaptador de React. Estábamos como, estamos salvados. ¿Y adivina qué? Lo estábamos. Pudimos migrar y seguir usando aggrid, y honestamente fue súper genial. Pero nos encontramos con algunos pequeños problemas aquí y allá. Estábamos trabajando con un componente de React. Es solo React. Todo son solo componentes.

3. Desarrollo y Desafíos de React Table

Short description:

Bajo el capó, aggrid no se renderizaba usando React. Tenía su propio motor de manipulación de DOM personalizado, lo que lo hacía rápido. Pero carecía de la integración que queríamos. Ahora aggrid tiene un renderizado de React integrado. En 2017, necesitábamos una biblioteca de tablas y comenzamos a trabajar en React Table. Creció en popularidad, pero enfrentamos numerosos problemas en GitHub. Los usuarios tenían muchas preguntas y solicitudes, pero no teníamos las opciones. Así que agregamos más props a la versión 6 de React Table.

Pero algo era interesante. Bajo el capó, notamos que aggrid no se estaba renderizando usando React. Estaba enviando su propio motor de manipulación de DOM personalizado, lo que explicaba por qué era tan increíblemente rápido. Pero en el proceso de enviar ese motor increíblemente rápido, React se vio un poco afectado. No había el nivel de integración que estábamos buscando. Estoy realmente contento de que a día de hoy, aggrid tenga un renderizado de React integrado. Es asombroso. Niall de aggrid hablará de ello en unos minutos. Quédate si quieres escuchar sobre eso.

Esto fue en 2017. Eso aún no existía y necesitábamos una biblioteca de tablas de inmediato. Obviamente, comencé a trabajar en la tabla de React. Era un solo componente. Era 100% React. Pude descargar muchas cosas a React. Tuvimos que hacer toda la renderización, la gestión de estado. Todavía estábamos usando this.set state, pero aún era bastante bueno. Incluso teníamos paquetes más pequeños porque React estaba haciendo mucho por nosotros.

Lo lanzamos pensando que iba a ser lo que fuera. La tabla de React comenzó a crecer. La gente quería tablas y que React trabajara en conjunto. Mientras estábamos disfrutando del éxito que teníamos en el gráfico de descargas de NPM, una tormenta se estaba gestando en el repositorio de GitHub en forma de problemas. Toneladas de problemas. Nos estaban inundando con problemas, y todos se veían así. ¿Puedo mover la paginación? ¿Me das props personalizadas? ¿Puedo usar mi propio componente de fila? ¿Puedo usar cualquier biblioteca de CSS y JS que salga esta semana? ¿Puedo hacer algo con el marcado? La realidad es que no podía responder ninguna de esas preguntas. No tenía las opciones para hacer eso. Honestamente, era solo un enorme montón de basura. Era terrible. Hice lo único que sabía hacer, y eso es agregar más props. ¿Alguna suposición de cuántas props agregué a la versión 6 de la tabla de React? Cinco.

4. Desarrollo de React Table e Integración con Downshift

Short description:

130. 137 props. Para personalizar cada pequeño detalle sobre React Table. Afortunadamente, mi amigo Kent estaba construyendo una nueva biblioteca llamada Downshift. Te proporcionaba el estado, te daba la API, y tú tenías que conectarlo tú mismo. Vi esto y pensé que era la respuesta. Arranqué todo lo innecesario y escribí una nueva versión. Al equipo central de React le encantó y lo lanzamos lo antes posible.

¡Vamos! 130. 137 props. Para hacer todo. Están todos ahí. Para personalizar cada pequeño detalle sobre React Table porque era solo un componente.

Me estaba ahogando. Honestamente, me estaba ahogando. Afortunadamente, no morí. Pero, afortunadamente, mientras me estaba ahogando en mi miseria, mi amigo Kent estaba construyendo una nueva biblioteca llamada Downshift.

Downshift era una biblioteca para construir desplegables y autocompletados. Pero era realmente interesante. No renderizaba ningún marcado para ti. Solo te daba el estado, te daba la API, y tú tenías que conectarlo tú mismo. Vi esto y pensé, esta es la respuesta. Así es como voy a resolver este problema. Inmediatamente, me sumergí en el código fuente de React Table. Pensé, arranca todo esto, vamos a ir con este enfoque de API, invertir el control al usuario para renderizar todo ellos mismos.

Algunas personas decían, ¿vas a hacer que yo renderice mi propia tabla? Y yo decía, sí, lo haré. Porque va a ayudar. Solo confía en mí. Lo prometo. Estoy casi terminando de escribir esta nueva versión. El equipo central de React dijo, boom, enganchado. En serio, simplemente mató todo, funciones como hijos, render props. Yo decía, sí. Validó exactamente el enfoque que estaba tratando de tomar. Así que pude tomar este componente dinky como función de hijos y convertirlo en este impresionante hook de use table donde podrías devolver cualquier marcado que quisieras. Fue fantástico. Y lo lanzamos. Lo lancé lo antes posible, tan pronto como estuvo terminado.

5. Versión 7 de React Table y el patrón de UI sin cabeza

Short description:

La versión 7 de React Table introdujo el concepto de UI sin cabeza, que separa la lógica del marcado y los estilos. Este enfoque promueve la capacidad, la inversión de control, la reutilización y un código de mayor calidad. A pesar de la resistencia inicial, los usuarios finalmente aceptaron el poder de escribir sus propias tablas. React Table se adoptó ampliamente, con proyectos como la nueva beta de GitHub utilizándola bajo el capó mientras mantenían sus propios componentes y estilos. Sin embargo, el código abierto nunca termina realmente, y la demanda de soporte para TypeScript presentó un nuevo desafío.

Y la versión 7 de React Table fue increíble. Pero debido a esta inversión de control, pude cerrar, como, el 95% de los problemas de GitHub que teníamos, básicamente respondiendo a todos con la misma cosa exacta. ¿Quieres mover la paginación? Hazlo tú mismo, te desafío. Y más tarde aprendí que este patrón tiene un nombre. Se llama Headless UI.

Y Headless UI no es el producto tailwind que estás pensando. Pero conceptualmente, es, sabes, es un proceso de tomar toda tu lógica y todo lo que compone las partes lógicas de tu aplicación y separarlas de tu marcado y tus estilos. Creo que esto fomenta, como, mucha más capacidad, inversión de control, reutilización. Creo que resulta en un code de mayor calidad. Da como resultado de la misma manera que mover tu estado a una máquina de estado. Así que, lanzamos la Versión 7, y fue genial. Tomó un poco de tiempo para convencer a la gente de que tenían que escribir sus propias tablas. Pero una vez que lo probaron, les encantó el poder.

Vale. Eso duró dos años. E incluso comencé a ver algunos proyectos como los problemas de GitHub, la nueva beta está usando React table bajo el capó para renderizar todas sus tablas. Pero están usando sus propios componentes. Todo es Headless. Así que, pueden seguir usando su component library y todos sus estilos, y todo a lo que están acostumbrados a usar. Vi esto, y solo pensé, lo logré. React table está terminado. Me voy. Voy a construir React query. Básicamente hice eso. El código abierto tiene una forma, sin embargo, de jugarte una mala pasada. Nunca terminas con el código abierto, y tampoco tus usuarios. Realmente desearía tener sonido para la próxima diapositiva, pero estoy bastante seguro de que Paramount Pictures cerraría la transmisión. De todos modos, estoy aquí disfrutando de mi código abierto, y de la nada es como, boom, los usuarios de TypeScript aparecen de la nada. Están como, danos TypeScript, vamos, vamos, y yo estoy como, ¡aléjate! No tenía idea de qué hacer. Es una historia real.

6. Adoptando TypeScript en el Desarrollo de React Table

Short description:

Tenía miedo de TypeScript en código abierto. No sabía lo que estaba haciendo. Pero las bibliotecas que usaban TypeScript eran de mayor calidad. Finalmente, tuve que aceptarlo y subir de nivel.

Estaba como, cerrando problemas, y escondiéndome, bloqueando cosas, como, aléjate, ¿verdad? Si alguien ha hecho código abierto, como, tienes TypeScript viniendo hacia ti, da miedo. Si no conoces TypeScript, simplemente estás como, no sé de qué estás hablando. Lo siento, alguien más puede hacer los tipos. Solo voy a seguir jugueteando por aquí. No tenía idea de lo que estaba haciendo. Pero era aún más aterrador porque sabía que TypeScript era casi inevitable. Venía por mí, y en algún momento, iba a tener que tener un ajuste de cuentas.

7. Adoptando TypeScript en el Desarrollo

Short description:

Me resistí mucho, incluso lo criticaba en Twitter. Pero comencé a notar que las bibliotecas que usaban TypeScript generalmente eran de mayor calidad, más que las mías. Eventualmente, tuve que aceptarlo. Fue una decisión difícil porque significaba reducir la velocidad para aprender algo nuevo y aterrador. Pero lo adopté, a gran escala.

Me resistí mucho, incluso lo criticaba en Twitter. Todos lo hacemos. Todos, levanten la mano. Todos lo hacemos. Pero comencé a notar que las bibliotecas que usaban TypeScript generalmente eran de mayor calidad, más que las mías. Tenían menos problemas, y honestamente, los desarrolladores que trabajaban en ellas y usaban TypeScript, era síndrome del impostor. Eran simplemente estrellas de rock. No sé cómo lo hacían. Eventualmente, tuve que aceptarlo. Era hora de subir de nivel. Fue una decisión difícil porque significaba reducir la velocidad para aprender algo nuevo y aterrador. Pero lo adopté, a gran escala.

8. Reescribiendo React Table con TypeScript

Short description:

Comencé a reescribir la versión 8 de React Table hace dos años con TypeScript y pensé, tendré una nueva versión en dos semanas. Será como una alfa, dos semanas, será fácil. De ninguna manera. No sabía lo que estaba haciendo. Me había lanzado al extremo y había aprendido que escribir bibliotecas y TypeScript, esto es algo súper avanzado.

TypeScript realmente es increíble. Y prometo que esta no es una charla sobre TypeScript, pero quizás un poco de mensaje literal. Comencé a reescribir la versión 8 de React Table hace dos años con TypeScript y pensé, tendré una nueva versión en dos semanas. Será como una alfa, dos semanas, será fácil. De ninguna manera. No sabía lo que estaba haciendo. Me había lanzado al extremo y había aprendido que escribir bibliotecas y TypeScript, esto es algo súper avanzado. Ni siquiera sabía cómo usar TypeScript como desarrollador de aplicaciones aún, y estaba tratando de escribir una biblioteca. Estaba en sobre mi cabeza.

9. Aprendiendo TypeScript y el Poder de los Genéricos

Short description:

Agárrate fuerte. TypeScript de biblioteca es una locura. Los genéricos te harán volar la cabeza, te harán llorar y luego te harán muy feliz. Te permiten canalizar tipos en tu sistema y devolverlos a tus usuarios. La función de crear columna para React Table utiliza diez genéricos. React Table tiene al menos 36 funciones, cada una consumiendo una cantidad similar de genéricos. Son como 5,000 líneas de código, o más bien, líneas de tipos. Esto me llevó a la idea de usar una bolsa de opciones para manejar un gran número de argumentos.

Así que lancé la señal de batman en Twitter, y tuve a algunas personas increíbles que vinieron a mi rescate, ofrecieron su tiempo y toda su energía para ayudarme a aprender TypeScript en todas las formas posibles, como mirar sus patrones, llamadas en vivo con todos, soporte a través del mantenimiento. Este es mi equipo de TypeScript, y solo quería agradecerles públicamente porque son increíbles. Pero todos básicamente dijeron esto, sí, gracias. Gracias. Todos básicamente dijeron lo mismo. Agárrate fuerte. Porque TypeScript de biblioteca es una locura. Oh, también, los genéricos, van a hacer volar tu mundo. Como, te harán llorar, y luego te harán muy feliz. Son geniales.

De hecho, hablemos de los genéricos realmente rápido. Es básicamente el proceso de tomar algo que sería tipado estáticamente, como una cadena, y darle variables a tus tipos para que puedas canalizar esos tipos en tu sistema y devolverlos a tus usuarios. Esta es una función realmente simple, pero también puedes usar múltiples genéricos para extraer información de los tipos, y proporcionarla de vuelta al usuario en forma de autocompletado. A todos les encanta eso de VS Code, seas usuario de TypeScript o no. en otro nivel, ¿verdad? Mira la función de crear columna para React Table. Son diez genéricos. Pasémoslo por Prettier. Eso es realmente lo que vamos a ver. Está bien, tenemos algunas opciones y una columna y no sé si alguien se dio cuenta, pero aún no estamos devolviendo, aún no estamos haciendo la implementación. Este es el volumen de código que tenemos. Hay al menos 36 funciones en React Table y todas consumen aproximadamente la misma cantidad de genéricos. ¿Alguien sabe cuántas líneas de código son? Son como 5,000 líneas de código. En algunas líneas de código, son líneas de tipos. Esto fue algo que tuve dificultades para entender con los tipos, donde me preguntaba, ¿por qué estoy haciendo esto, verdad? Sí, la implementación ni siquiera estaba terminada. Así que estaba bastante triste, pero tuve esta idea. ¿Alguien más se ha encontrado con esta situación con JavaScript? Como vaya, eso es un montón de argumentos. ¿Qué hacemos? Lo metes en una bolsa de opciones. Boom. Bolsa de opciones. Empaquetándolo.

10. Uso de Genéricos y TypeScript en React Table

Short description:

Por lo tanto, podemos hacer lo mismo con los genéricos. Podemos tomar todos estos genéricos, extraerlos en un tipo genérico y reutilizarlo como una variable. Pude reducir el código fuente de React Table en un 70 por ciento implementando este patrón. Todas las grandes cosas sobre TypeScript comenzaron a salir. Es capaz de tomar todas las cosas que normalmente solo están atrapadas en tu cerebro y meterlas en TypeScript. Es una tecnología ganadora.

Por lo tanto, podemos hacer lo mismo con los genéricos. Podemos tomar todos estos genéricos, extraerlos en un tipo genérico y reutilizarlo como una variable. Esto es algo muy nuevo, y no lo he visto mucho en la práctica. Espero que funcione, porque es increíble.

Después de hacer este cambio, pude acceder a todos mis genéricos como una lata de JavaScript objetos. Se llama mapas genéricos, y no sé por qué se llama mapas genéricos. Creo que debería llamarse bolsas genéricas. Pude reducir el code fuente de React Table en un 70 por ciento implementando este patrón. Probablemente tendré que hablar más sobre esto en una charla de TypeScript. Pero este fue el punto en el que comencé a sentirme seguro. Estaba como, está bien. Soy peligroso, y sé un poco de genéricos. Me siento bien.

Todas las grandes cosas sobre TypeScript comenzaron a salir. Toda la refactorización, menos errores, mejor design. Es capaz de tomar todas las cosas que normalmente solo están atrapadas en tu cerebro que van a desvanecerse si te alejas de tu proyecto durante dos semanas, meterlas en TypeScript, y simplemente dormir por la noche porque no estoy recordando los árboles de dependencia de mi code. Creo que es una necesidad. Hay mucho más que necesitamos hablar sobre TypeScript. Simplemente no puedo hacerlo. Es una tecnología ganadora. Tómalo de alguien que fue un completo 180 desde el año pasado. Necesitas probarlo. Necesitas usarlo.

11. React Table se vuelve agnóstico al marco

Short description:

React Table ahora se llama TanSeqTable y se está volviendo agnóstico al marco. Se enviará con adaptadores para todos los marcos, facilitando la construcción de tablas en React. Los últimos cinco años han sido interesantes, con dos años dedicados a implementar y aprender TypeScript. Queda una cosa más por hacer, pero no estamos conectados al Wi-Fi.

No queda mucho tiempo, pero hay una cosa más de la que quiero hablar que es un poco de una historia de batalla con React Table, pero también es el futuro. Solo quiero tranquilizar a todos ahora mismo. Lo prometo, amo a React. Estoy aquí para quedarme. Pero seríamos muy ingenuos al pensar que React es una especie superior y es lo único capaz de producir aplicaciones y UI increíbles, ¿verdad? Sé que lo amamos, pero necesitamos bajarlo del pedestal de vez en cuando. Hay otros marcos por ahí. Solid, Vue, Svelte. Está bien. Adelante. Sabes, creo que ellos también merecen tablas. Creo que merecen una tabla mayor que la que puedo construir en React.

Y, en la tradición de empujar el límite en el último momento, decidí tomar React Table y volverse agnóstico. Así que, React Table ahora se llama TanSeqTable, y se enviará con todos los adaptadores para todos los marcos. ¿Angular, quieres trabajar en el adaptador de Angular? Ven a hablar conmigo. ¿Vale? Pero es agnóstico al marco. Y esto normalmente sería muy difícil, pero aparentemente, estar de pie sobre los hombros de headless UI lo hace mucho más fácil. Ya estamos separando el marcado y los estilos, y eso compensa muchas de las diferencias entre muchos de nuestros marcos de entrada. Y resulta que solo necesitábamos unos pocos adaptadores para sentarnos en el medio, como para conectar los internos de la reactividad y el contexto. Este es el adaptador de tabla sólida. Eso es. Y todos los demás adaptadores básicamente se ven exactamente igual, incluso React.

Por lo tanto, los últimos cinco años han sido realmente interesantes con Tansac Table. Dos años se han dedicado solo a implementar y aprender TypeScript. Fue una locura. Realmente solo queda una cosa por hacer. ¿Deberíamos hacerlo? Está bien. Hagámoslo. Espera. Espera. Ni siquiera estamos conectados al Wi-Fi.

12. Mesa TANStack y Asociación con AG Grid

Short description:

Durante los próximos 30 días, nos convertiremos a TANStack Query, virtual y Ranger. AG Grid es ahora un socio OSS de TANStack. Educaremos a todos sobre cómo construir mejores tablas y cuándo usar cada herramienta. Cambiar al paradigma sin cabeza en React Table se sintió extraño al principio, pero es como debería ser. Puedes hacerle preguntas a Tanner en Slido.com.

Lo haré después de la charla. Está bien. También hay algunas otras cosas de las que quiero hablar rápidamente.

Entonces, durante los próximos 30 días, nos convertiremos a TANStack Query, virtual, y Ranger, y el resto de las bibliotecas llegarán pronto.

Quería agradecer realmente a todos los que han ayudado con estos proyectos, a cualquiera virtual. Hay muchos mantenedores y contribuyentes trabajando, especialmente en otros frameworks, y creo que eso es realmente impresionante. También, a todos mis patrocinadores de GitHub. No habría podido hacerlo sin ellos.

Quería hablar de un patrocinador, es completamente nuevo en particular, que no esperarías pero AG Grid. Normalmente, TANStack Table, es un poco raro decir eso ahora, y AG Grid han sido vistos como competidores. Sabes, resulta que eso no es realmente el caso. Son muy diferentes. Resuelven problemas únicamente diferentes con paradigmas muy diferentes. Dependiendo de tu caso de uso, podrías querer usar cualquiera de ellos. Al igual que yo en un momento usé AG Grid y me encantó. Llegamos a esta realización y supimos que era hora de trabajar juntos. Así que hoy, estoy anunciando que AG Grid es el primer socio OSS de TANStack con TANStack Table y juntos, vamos a trabajar tan duro como podamos para educar a todos en el ecosystem, independientemente del framework, sobre cómo construir mejores tablas, cuándo usar cada herramienta, y vamos a compartir tanto conocimiento como podamos a través de este abismo y asegurarnos de que todos podemos ser amigos. Entonces, puedes leer más al respecto en TANStack.com. Eso es todo. ¡Woo! ¡Woo! Sí.

Bueno, muchas gracias Tanner. Como usuario de React Table, lo usé en un proyecto anterior. Tengo que decir que fue realmente, lo que dijiste, ese cambio al paradigma headless, fue una cosa extraña al principio, pero tan pronto como empiezas con ello, te das cuenta de que, sí, así es como debería ser, ¿verdad? Sí. Entonces, puedo, sí, puedo decirle a todos los que piensan que es raro. Fue básicamente lo mismo para mí cuando vi React por primera vez. Se siente raro, ¿verdad?, escribir tu marcado en JavaScript. Se siente raro, pero se siente tan bien cuando empiezas a usarlo. Correcto. Sí.

Entonces, si tienes alguna pregunta para Tanner, puedes hacerlo en Slido.com.

13. Aceptando TypeScript y Superando Desafíos

Short description:

Cuando comencé a aprender TypeScript, me llevó alrededor de seis meses aceptarlo completamente y no sentirme ralentizado por él. Al principio, no veía los beneficios y se sentía como una cápsula de liberación retardada. Pero después de unas dos semanas, comencé a ver la luz y solo fue mejorando. Sin embargo, todavía hay frustraciones y desafíos, como el error 'no overload matches this call'.

Hay una pregunta de Metin Persinski, parece un buen tipo. Entonces, cuando comenzaste a aprender TypeScript, ¿cuánto tiempo te llevó aceptarlo y no sentirte ralentizado por él? Para mí, fueron como seis meses antes de que sintiera, oh, entiendo esto. Sí, honestamente, es como una cápsula de liberación retardada que tomas, ¿verdad? Al principio, estás como, ah, no estoy realmente sintiendo los beneficios. Siento que alrededor de dos semanas empiezas a ver la luz y solo sigue acelerando hasta el marcador de seis meses, ¿sabes? Todavía estoy apreciando cosas que estoy aprendiendo sobre TypeScript. Oh, por supuesto. Y todos los días hay nuevas frustraciones también. No overload matches this call. ¿Quién ha estado allí, verdad? Sí, doloroso, ¿verdad? No tengo idea de cómo resolverlo, todavía son como tres años después.

QnA

Preguntas y Respuestas sobre el Viaje de React Table

Short description:

El mejor momento de iluminación en mi viaje con React Table fue el Headless UI. Convencer a un equipo para cambiar a TypeScript se puede hacer a través de una sesión de programación en pareja. Mantener la cordura mientras se trabaja en código abierto implica encontrar distracciones. Para beneficiarse de TypeScript sin una red, leer la documentación y profundizar en el código fuente puede ser útil.

Siguiente pregunta de Golub. ¿Cuál fue el mejor momento de iluminación en tu viaje con React Table? Headless UI. Es fácil. Genial, cubierto.

Siguiente pregunta de GN. ¿Cómo convencerías a tu equipo para cambiar a TypeScript? No lo sé. Realiza una sesión de programación en pareja para refactorizar algo en varios archivos. Esa experiencia es cien veces mejor con TypeScript. Puedes cambiar una cosa y literalmente te indica en todas partes de tu aplicación que necesitas actualizar. No puedes mantener todo eso en tu cabeza. Incluso el autocompletado mejora mucho. Hay tantos beneficios. Muy bien. Pero no somos una conferencia de TypeScript. No, y esta no fue una charla de TypeScript. Quizás un poco. Así que, siguiente pregunta.

¿Cómo te mantuviste cuerdo haciendo trabajo de código abierto? Eso no es todo lo que hago. Tengo una startup. Ocupa mucho de mi tiempo también. Hago muchas cosas a la vez. Si puedo hacer una cosa que beneficie a ambas, eso es lo que hago. Tengo una familia que me distrae lo suficiente para que no me sumerja demasiado en cosas como el doom scrolling de problemas y todo eso. Sí, solo encuentra distracciones. Así que es para las preguntas que tenemos. Así que cualquier pregunta que tengas, tienes que hacerla ahora mismo. Una entrante. Imagino que fue fácil para ti encontrar ayuda con TypeScript. Dada tu red de contactos e imagen pública, pero ¿cómo podrían otras personas que no tienen tu red obtener ese beneficio? Primero, solo lee todos los docs como la TypeScript documentation es increíble. Y sabes, me di cuenta más tarde que todo lo que mis amigos me estaban ayudando a aprender, probablemente podría haberlo aprendido por mi cuenta si hubiera profundizado en el código fuente de las bibliotecas de código abierto y simplemente hubiera empezado a juntarlo.

Aprendiendo TypeScript Avanzado y Preguntas y Respuestas

Short description:

No necesitas aprender TypeScript avanzado a menos que escribas una biblioteca. La documentación en el manual suele ser suficiente. Cuando hay un error, puedes encontrar fácilmente soluciones buscando el código de error. Sin embargo, los errores de asignación de tipo pueden ser un desafío. Eso es todo el tiempo que tenemos para preguntas y respuestas.

Concédete que no creo que mucha gente necesite aprender tanto advanced TypeScript a menos que escribas una especie de biblioteca. La mayor parte del tiempo, la documentation en el manual te llevará básicamente todo el camino.

Lo que me gusta a mí, que para mí fue una revelación al empezar con React, TypeScript, es que cuando hay un error, obtienes un código de error y puedes copiarlo y pegarlo en Google y boom. Eso fue realmente fácil para mí. Solo TS y algún número y encontrarás una publicación en Stack Overflow explicando el mismo problema. A menos que sea algún tipo que no se puede asignar a otro tipo. Sí, eso es doloroso.

Bueno, eso es todo el tiempo que tenemos para preguntas y respuestas. Si quieres continuar la conversación con Tanner, puedes hacerlo en el stand de los oradores o en spatialjet. Tanner, muchas gracias. Sí. Lamento haber arruinado Jurassic Park. Nunca lo verás de la misma manera.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Una Guía del Comportamiento de Renderizado de React
React Advanced 2022React Advanced 2022
25 min
Una Guía del Comportamiento de Renderizado de React
Top Content
This transcription provides a brief guide to React rendering behavior. It explains the process of rendering, comparing new and old elements, and the importance of pure rendering without side effects. It also covers topics such as batching and double rendering, optimizing rendering and using context and Redux in React. Overall, it offers valuable insights for developers looking to understand and optimize React rendering.
Construyendo Mejores Sitios Web con Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Construyendo Mejores Sitios Web con Remix
Top Content
Remix is a web framework built on React Router that focuses on web fundamentals, accessibility, performance, and flexibility. It delivers real HTML and SEO benefits, and allows for automatic updating of meta tags and styles. It provides features like login functionality, session management, and error handling. Remix is a server-rendered framework that can enhance sites with JavaScript but doesn't require it for basic functionality. It aims to create quality HTML-driven documents and is flexible for use with different web technologies and stacks.
Compilador React Forget - Entendiendo React Idiomático
React Advanced 2023React Advanced 2023
33 min
Compilador React Forget - Entendiendo React Idiomático
Top Content
Joe Savona
Mofei Zhang
2 authors
The Talk discusses React Forget, a compiler built at Meta that aims to optimize client-side React development. It explores the use of memoization to improve performance and the vision of Forget to automatically determine dependencies at build time. Forget is named with an F-word pun and has the potential to optimize server builds and enable dead code elimination. The team plans to make Forget open-source and is focused on ensuring its quality before release.
Uso efectivo de useEffect
React Advanced 2022React Advanced 2022
30 min
Uso efectivo de useEffect
Top Content
Today's Talk explores the use of the useEffect hook in React development, covering topics such as fetching data, handling race conditions and cleanup, and optimizing performance. It also discusses the correct use of useEffect in React 18, the distinction between Activity Effects and Action Effects, and the potential misuse of useEffect. The Talk highlights the benefits of using useQuery or SWR for data fetching, the problems with using useEffect for initializing global singletons, and the use of state machines for handling effects. The speaker also recommends exploring the beta React docs and using tools like the stately.ai editor for visualizing state machines.
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
Mishko, the creator of Angular and AngularJS, discusses the challenges of website performance and JavaScript hydration. He explains the differences between client-side and server-side rendering and introduces Quik as a solution for efficient component hydration. Mishko demonstrates examples of state management and intercommunication using Quik. He highlights the performance benefits of using Quik with React and emphasizes the importance of reducing JavaScript size for better performance. Finally, he mentions the use of QUIC in both MPA and SPA applications for improved startup performance.
Documentación Full Stack
JSNation 2022JSNation 2022
28 min
Documentación Full Stack
Top Content
The Talk discusses the shift to full-stack frameworks and the challenges of full-stack documentation. It highlights the power of interactive tutorials and the importance of user testing in software development. The Talk also introduces learn.svelte.dev, a platform for learning full-stack tools, and discusses the roadmap for SvelteKit and its documentation.

Workshops on related topic

Masterclass de Depuración de Rendimiento de React
React Summit 2023React Summit 2023
170 min
Masterclass de Depuración de Rendimiento de React
Top Content
Featured Workshop
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Vería una interacción lenta, intentaría una optimización aleatoria, vería que no ayudaba, y seguiría intentando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Haría una grabación en Chrome DevTools o React Profiler, la examinaría, intentaría hacer clic en cosas aleatorias, y luego la cerraría frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos a analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, estaremos cubriendo el rendimiento de la interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)
Next.js para Desarrolladores de React.js
React Day Berlin 2023React Day Berlin 2023
157 min
Next.js para Desarrolladores de React.js
Top Content
Featured WorkshopFree
Adrian Hajdin
Adrian Hajdin
En esta avanzada masterclass de Next.js, profundizaremos en conceptos clave y técnicas que permiten a los desarrolladores de React.js aprovechar al máximo Next.js. Exploraremos temas avanzados y prácticas prácticas, equipándote con las habilidades necesarias para construir aplicaciones web de alto rendimiento y tomar decisiones arquitectónicas informadas.
Al final de esta masterclass, serás capaz de:1. Comprender los beneficios de los Componentes del Servidor React y su papel en la construcción de aplicaciones React interactivas, renderizadas por el servidor.2. Diferenciar entre el tiempo de ejecución de Edge y Node.js en Next.js y saber cuándo usar cada uno en función de los requisitos de tu proyecto.3. Explorar técnicas avanzadas de Renderizado del Lado del Servidor (SSR), incluyendo streaming, fetching paralelo vs. secuencial, y sincronización de datos.4. Implementar estrategias de caché para mejorar el rendimiento y reducir la carga del servidor en las aplicaciones Next.js.5. Utilizar Acciones React para manejar la mutación compleja del servidor.6. Optimizar tus aplicaciones Next.js para SEO, compartir en redes sociales, y rendimiento general para mejorar la descubrabilidad y la participación del usuario.
Aventuras de Renderizado Concurrente en React 18
React Advanced 2021React Advanced 2021
132 min
Aventuras de Renderizado Concurrente en React 18
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
Con el lanzamiento de React 18 finalmente obtenemos el tan esperado renderizado concurrente. Pero, ¿cómo va a afectar eso a tu aplicación? ¿Cuáles son los beneficios del renderizado concurrente en React? ¿Qué necesitas hacer para cambiar al renderizado concurrente cuando actualices a React 18? ¿Y qué pasa si no quieres o no puedes usar el renderizado concurrente todavía?

¡Hay algunos cambios de comportamiento de los que debes estar al tanto! En esta masterclass cubriremos todos esos temas y más.

Acompáñame con tu portátil en esta masterclass interactiva. Verás lo fácil que es cambiar al renderizado concurrente en tu aplicación React. Aprenderás todo sobre el renderizado concurrente, SuspenseList, la API startTransition y más.
Consejos sobre React Hooks que solo los profesionales conocen
React Summit Remote Edition 2021React Summit Remote Edition 2021
177 min
Consejos sobre React Hooks que solo los profesionales conocen
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
La adición de la API de hooks a React fue un cambio bastante importante. Antes de los hooks, la mayoría de los componentos tenían que ser basados en clases. Ahora, con los hooks, estos son a menudo componentes funcionales mucho más simples. Los hooks pueden ser realmente simples de usar. Casi engañosamente simples. Porque todavía hay muchas formas en las que puedes equivocarte con los hooks. Y a menudo resulta que hay muchas formas en las que puedes mejorar tus componentes con una mejor comprensión de cómo se puede usar cada hook de React.Aprenderás todo sobre los pros y los contras de los diversos hooks. Aprenderás cuándo usar useState() versus useReducer(). Veremos cómo usar useContext() de manera eficiente. Verás cuándo usar useLayoutEffect() y cuándo useEffect() es mejor.
Presentando FlashList: Construyamos juntos una lista performante en React Native
React Advanced 2022React Advanced 2022
81 min
Presentando FlashList: Construyamos juntos una lista performante en React Native
Top Content
Featured Workshop
David Cortés Fulla
Marek Fořt
Talha Naqvi
3 authors
En esta masterclass aprenderás por qué creamos FlashList en Shopify y cómo puedes usarlo en tu código hoy. Te mostraremos cómo tomar una lista que no es performante en FlatList y hacerla performante usando FlashList con mínimo esfuerzo. Usaremos herramientas como Flipper, nuestro propio código de benchmarking, y te enseñaremos cómo la API de FlashList puede cubrir casos de uso más complejos y aún así mantener un rendimiento de primera categoría.Sabrás:- Breve presentación sobre qué es FlashList, por qué lo construimos, etc.- Migrando de FlatList a FlashList- Enseñando cómo escribir una lista performante- Utilizando las herramientas proporcionadas por la biblioteca FlashList (principalmente el hook useBenchmark)- Usando los plugins de Flipper (gráfico de llamas, nuestro perfilador de listas, perfilador de UI & JS FPS, etc.)- Optimizando el rendimiento de FlashList utilizando props más avanzados como `getType`- 5-6 tareas de muestra donde descubriremos y solucionaremos problemas juntos- Preguntas y respuestas con el equipo de Shopify
React, TypeScript y TDD
React Advanced 2021React Advanced 2021
174 min
React, TypeScript y TDD
Top Content
Featured Workshop
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.