Sí. Vemos un componente compilado. ¿Cómo puedes verificar eso? Asegúrate de instalar la última versión de React DevTools. Verás estos bonitos botones de estrellas de memorización azules, pero luego te preguntas, está bien, habilité el compilador para muchos más archivos. Entonces, ¿qué está pasando en mi aplicación aquí? Y luego estás investigando como, está bien, bueno, ¿qué dijimos sobre los compiladores antes? También se trata de la generación de informes de errores. Así que si echas un vistazo rápido al registro de ESLint, vemos que el compilador de React omitió optimizar este componente porque una o más reglas de ESLint de React fueron desactivadas. Así que una pregunta rápida, ¿quién de ustedes desactiva regularmente las reglas de ESLint? Bueno, al menos algunas personas en el frente, lo cual, bueno, yo también hice eso en la base de código. Entonces, ¿qué puedes hacer al respecto? En nuestros casos, creo que hay como dos cosas principales que van a suceder. El primer caso es, tienes algunos efectos en algún lugar y eso está diciendo como, oh, bueno, no quiero volver a renderizar, pero resulta que en realidad depende de algo que es estable porque usas otro hook aquí en este caso que estaba devolviendo una acción estable. Así que también podrías simplemente poner la acción en el área de dependencia, va a estar bien, y luego ese componente se compilará bien. En otros casos, podrías tener algunas dependencias donde estás omitiendo. Así que como este código aquí podría usar la referencia B, pero en el área de dependencia, solo tienes referencia A y C, y hay alguna lógica de negocio detrás de eso. En este caso, bueno, simplemente apila otra regla de desactivación de ESLint en la siguiente línea y, wow, también funciona. Pero eso significa que el archivo aún no se compilará, simplemente no recibirás la advertencia en tu lint. Así que eso podría ser importante dependiendo de cómo esté configurado tu CI. Está bien, sigamos adelante.
Y luego tienes este ejemplo, estás como, está bien, ¿por qué se queja el compilador sobre esto? Estoy como, esto parece que tengo ref, tengo algún controlador de desplazamiento y lo estoy adjuntando a la ventana y como, ¿por qué se queja el compilador? ¿Alguna suposición? Muy bien, traje algo de ayuda para mirar esto para un rápido repaso de las reglas de React. Así que hagámoslo aquí por Bernhard. Déjame ayudarte. Hay tres reglas principales. Uno, los componentes y hooks deben ser puros. Dos, React llama a componentes y hooks. Tres, reglas de hooks. Bueno, creo que la tercera regla es un poco mala, pero es la forma en que está en la documentación de React, pero puedes reescribir eso como código abierto. Solo se llaman hooks en el nivel superior de las funciones de React. Así que, está bien. ¿Tenemos alguna idea ahora? Bueno, en realidad es la primera regla. Los componentes y hooks deben ser puros. ¿Cuál es el problema aquí? El problema aquí es como estamos usando este ref, pero solo se te permite realmente acceder al ref, bueno, en callbacks. No se te permite acceder al ref en tiempo de renderizado porque eso hace que tu función no sea pura.
Comments