React 17 se centró en mejorar los fundamentos, pero hay algunas cosas importantes que se agregaron en React 18. En este artículo, repasaremos algunas de las últimas actualizaciones sobre cómo comenzar con las nuevas características interesantes en React 18 alpha.
Instale React 18 alpha: npm install react@alpha react-dom@alpha
Aquí está la lista de algunas actualizaciones.
En React 18 hay una nueva API raíz.
Anteriormente en nuestro método reactDOM.render, usamos para pasar nuestro componente App, luego document.getElementById y nuestro elemento raíz. Entonces estábamos renderizando nuestro componente de aplicación en nuestro elemento raíz en la página.
import ReactDOM from "react-dom";
import App from "App";
ReactDOM.render(<App />, document.getElementById("root"));
import ReactDOM from "react-dom";
import App from "App";
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(<App />);
Suspenso
Como su nombre, Suspense suspende algo hasta que esté listo para ser renderizado.
En la versión anterior de react, el siguiente código daría como resultado que ReadyComponent se montara inmediatamente y se llamaran sus efectos.
<Suspense fallback={<Loading />}>
<ComponentWaitingForData />
<ReadyComponent />
</Suspense>
En referencia al código anterior, ahora no montará ReadyComponent, sino que esperará a que ComponentWaitingForData se resuelva primero.
SuspenseList
Una SuspenseList exceptúa dos prop. 'revelOrder' y 'tail'.
'revelOrder' es una de las opciones de configuración de SuspenseList. Puede ser indefinido, juntos, hacia adelante y hacia atrás.
<SuspenseList revealOrder="forwards" >
<Suspense fallback={<p>Loading attendance...</p>}>
<Attendance id={facultyID}/>
</Suspense>
<Suspense fallback={<p>Loading homework...</p>}>
<Homework id={facultyID}/>
</Suspense>
</SuspenseList>
<SuspenseList revealOrder="forwards" tail="collapsed">
<Suspense fallback={<p>Loading attendance...</p>}>
<Attendance id={facultyID}/>
</Suspense>
<Suspense fallback={<p>Loading homework...</p>}>
<Homework id={facultyID}/>
</Suspense>
</SuspenseList>
useDeferredValue
'UseDeferredValue' es un gancho que devolverá una versión diferida del valor pasado. Toma el valor del estado y un tiempo de espera en milisegundos. Devolverá una versión diferida del valor que puede "quedarse atrás" durante la mayoría de los tiempos de espera.
import { useDeferredValue } from "react";
const [text, setText] = useState("react js");
const deferredText = useDeferredValue(text, { timeoutMs: 2000 });
Lote automático
Hay grandes mejoras en el procesamiento por lotes automático. En las versiones anteriores de React, se usa para agrupar múltiples actualizaciones de estado en una para reducir las repeticiones innecesarias. El problema fue que se hizo solo en controladores de eventos DOM y no en promesas, tiempos de espera u otros controladores.
Veamos el siguiente código sobre cómo se produce el procesamiento por lotes con versiones anteriores de React.
export default function App() {
const [count, setCount] = useState(0);
const [color, setColor] = useState(undefined);
const handleClick = () => {
setCount(count + 1); //No re-render
setColor(count % 2 === 0 ? "Green" : "Red"); //No re-render
// Now re-renders once at the end (this is batching)
}
return (
<>
<button onClick={handleClick}>Next</button>
<span style={{
color: count % 2 === 0 ? "red" : "green",
}}>
{color}
</span>
</>
);
}
Veamos el siguiente código donde se produce el procesamiento por lotes. En el siguiente código, el procesamiento por lotes funciona bien con React 18, pero las versiones anteriores de React no lo procesarán.
export default function App() {
const [count, setCount] = useState(0);
const [color, setColor] = useState(undefined); const handleClick = () => {
Promise.resolve().then(() => {
setCount(count + 1); //Re-render
setColor(count % 2 === 0 ? "Green" : "Red"); //Re-render
});
} return (
<>
<button onClick={handleClick}>Next</button>
<span style={{
color: count % 2 === 0 ? "red" : "green",
}}>
{color}
</span>
</>
);
}
Referencia - https://reactjs.org/blog/2021/06/08/the-plan-for-react-18.html
Acabamos de conocer algunas de las actualizaciones interesantes en la versión alfa de React 18. Como desarrollador de JavaScript, me gustaron mucho las actualizaciones y estoy emocionado de ver cómo se ve la versión beta de React 18.
Gracias por estar hasta el final 🙌. Si disfrutaste este artículo o aprendiste algo nuevo, apóyame haciendo clic en el botón de compartir a continuación para llegar a más personas y / o sígueme en Twitter para ver algunos otros consejos, artículos y cosas que aprendo y comparto allí.
Introducción Un accidente cerebrovascular es una emergencia médica que puede afectar a cualquier persona en cualquier momento. Ocurre cuando se interrumpe el flujo de sangre a una parte del cerebro, lo que lleva a una pérdida repentina de la función cerebral.
Esta semana, recibí un correo electrónico de un miembro de la lista de correo electrónico diaria. Querían saber: ¿Qué recursos visita diariamente, semanalmente y mensualmente? ¡Gran pregunta! Estoy feliz de intentar compartir algunas ideas sobre mi flujo de trabajo y los principales recursos que uso.
Cambiar a una nueva carrera puede ser extremadamente desafiante si trata de hacerlo solo. Es importante encontrar socios responsables que estén en el mismo nivel de aprendizaje que usted, que compartan objetivos, tenacidad e impulso similares.
En el mundo interconectado de hoy, la amenaza de los ataques cibernéticos es más frecuente que nunca. Los ciberdelincuentes y los actores del estado-nación buscan constantemente explotar las vulnerabilidades y robar datos valiosos, lo que representa un riesgo significativo para las organizaciones de todos los tamaños.
“Oye, Siri, toca Me Dive de Olivia Dean”. Fue en mayo de 2021 cuando comencé mi pasantía en Future Academy Africa en Akure, Nigeria.
Cuando realiza una solicitud a facebook.com, su computadora busca el nombre de dominio para traducir ese nombre de dominio en una dirección IP para que su computadora pueda hacer esa conexión.