De acuerdo. Permíteme mostrarte algo más. ¿Qué pasa si tengo un reloj? Un reloj solo aparece cuando lo desplazas. Observa que el reloj está en funcionamiento. Permíteme mostrártelo de nuevo. No tengo JavaScript, desplaza el reloj a la posición, cuando el reloj aparece, el JavaScript aparece y comienza a funcionar.
¿Qué hace exactamente el reloj? Bueno, hay una tarea useVisible que puedes pensar como useEffect. UseEffect se ejecuta en la hidratación, pero no hay hidratación, entonces, ¿cuándo se supone que debemos ejecutar algo así? Bueno, la respuesta es que se ejecuta cuando el componente se vuelve visible. Este fragmento de código hace naturalmente lo que esperarías, pero tiene un comportamiento interesante adicional que es como, oye, si el componente es invisible, ¿por qué molestarse en descargar, ejecutar o hacer algo así?
Permíteme mostrarte una cosa más interesante. Aquí tenemos un botón que dice Hacer algo, y voy a cambiar a la consola de registro. Este Hacer algo dice que voy a hacer un trabajo, un trabajo costoso, y devolver algún valor. Permíteme mostrártelo aquí. Hay un componente RPC que dice renderizar, un botón de clic que dice oye, voy a hacer el trabajo, voy a crear una fecha y voy a crear una función que dice hacer trabajo, y voy a fingir que este es el trabajo costoso, y, solo por diversión, voy a devolver una función que en realidad tiene un valor. Cosas típicas que haces, devuelves cierres y pasas cosas, ¿verdad? Obviamente, todo esto sucede en el navegador porque, bueno, está en el navegador. Pero ¿qué pasa si puedo hacer magia loca como esta, decir servidor, y de repente, si actualizo, y hago clic en el botón, nota que el clic fue en un cliente, el valor de retorno está en un cliente, pero el trabajo costoso, bueno, eso apareció en un servidor. Eso es bastante mágico cuando puedes hacer eso. Una de las cosas de las que hablamos en Click es la idea de un modelo de ejecución unificado, y puedo mostrarte más de eso más adelante. ¿Y dónde están mis diapositivas? Mis diapositivas desaparecieron. Aquí están. De todos modos, eso es más o menos mi charla. Espero que lo hayas disfrutado y espero que hayas entendido el punto, y si tienes alguna pregunta, estaré encantado de responder.
Aquí hay una pregunta filosófica. ¿Es un botón inmediatamente clickable? ¿Necesita descargar un pequeño fragmento de JavaScript primero, verdad? Sí, esa es una buena pregunta. Entonces hay algo llamado un cargador rápido. Un cargador rápido es muy pequeño, alrededor de un kilobyte, y se ejecuta en aproximadamente un milisegundo en una computadora de escritorio y alrededor de 10 milisegundos en un dispositivo móvil. Y todo lo que hace es configurar un oyente global. Y así, esa etiqueta de script se incluye en el HTML para que sea inmediato. Y en ese punto, no sucede nada más. Entonces, cuando haces clic en un botón, el evento se propaga hacia arriba y el oyente global de nivel superior lo captura , mira el botón y ve que el botón tiene un atributo, y el atributo dice algo como en dos puntos clic igual y tiene una URL, y ahí es donde va y obtiene el código. Y sabemos que esa URL realmente causará un acierto en la caché.
Comments