Y el deslizador se considera una actualización de alta prioridad, por lo que React priorizará ese movimiento y luego manejará esta actualización del gráfico de burbujas después. Usa deferred value. Así que esto es bastante similar a useTransition, pero en lugar de asignar prioridad a una actualización de estado lo que podemos hacer con esto es básicamente aplazar las actualizaciones de un valor en la UI. Así que si hay un valor que tengo, y no necesito que se actualice inmediatamente, entonces usaría este hook.
Así que es específicamente para valores que podrían potencialmente afectar mi experiencia de usuario que no son críticos para la interacción del usuario, más bien. Así que aquí, simplemente he definido el hook como de costumbre. Toma el valor que deseas aplazar, y luego te devuelve ese valor. Así que aquí, deferred está simplemente en una etiqueta p, y se considera de menor prioridad que el resto de la página.
Así que aquí hay otro video. Básicamente, creé este simple, solo un campo de entrada, y mientras escribo, esencialmente muestra lo que estoy escribiendo en ese campo de entrada. También he añadido ese punto rojo allí, solo para que puedas indicar cuando realmente estoy escribiendo. Así que nota de nuevo, la cantidad de retraso que hay, y también la lista que muestra este campo de entrada ha sido ralentizada artificialmente. De nuevo, para mostrar cómo funciona esto en la práctica, y luego aquí, estoy usando el hook. Y notas el cambio. Así que he definido el hook allí, y el valor que devuelve el hook, luego lo paso a este componente de lista lenta. Así que nota de nuevo, mientras escribo, no hay retraso. El punto rojo está allí más permanentemente, y luego los datos no se actualizan inmediatamente. Así que de nuevo, los nombres no necesariamente necesitan mostrarse inmediatamente, pero mientras escribo, que es una tarea de alta prioridad, quiero que eso suceda, y quiero retroalimentación inmediata.
Bien, y luego la última característica concurrente de la que voy a hablar hoy es Suspense para la obtención de datos. Así que Suspense ha existido desde React 16, pero en React 18, esencialmente han extendido la funcionalidad de Suspense. Así que típicamente, usaríamos Suspense para cargar un componente de manera diferida, así que si no necesariamente queremos que el componente se renderice cuando no es necesario, usaríamos Suspense para eso. Y ahora, lo que podemos usar Suspense es para básicamente pausar el renderizado de un componente hasta que los datos que requiere hayan sido resueltos. Así que aquí tengo un ejemplo. Esta variable de datos tiene que usar datos asincrónicos, y esencialmente, ese Suspense debería tener un componente dentro, pero el componente solo se renderizaría después de que tenga los datos que el componente está usando. Así que aquí tengo dos ejemplos, obtención de datos antes y después. Tengo este componente ArtistList, y así es como típicamente lo haríamos hoy. Así que tendríamos un useEffect donde llamaríamos a esta API, tendríamos un setIsLoading a true, y luego lo estableceríamos a false una vez que el resultado se haya resuelto. Y luego tengo este loadingArtist para verificar cuando loading es true, y luego simplemente renderizo los datos. Así que a la derecha, estoy haciendo prácticamente lo mismo, pero estoy usando Suspense que ahora puede manejar la obtención de datos. Así que aquí tengo mi componente ArtistList envuelto dentro del Suspense.
Comments