Y va a sangrar data. Así que eso no es genial. Por eso no quieres usar globales.
Así que para poner esto en un contexto más práctico, hagamos una tienda de donuts y dragones. Y esto va a estar en el escritor de aplicaciones, así que tendrás un diseño en la parte superior que sostiene toda la página. Tendrás un encabezado y luego un pop-up de carrito. Tendrás el contenido de la página, así que esto es como una página de e-commerce.
Y los que realmente nos interesan son estos dos componentes, el pop-up del carrito y el pop-up de añadir al carrito. Porque esos son componentes del cliente, van a mutar el estado, va a ser mutable. Y es entonces cuando queremos usar algo, tal vez, como un gestor de estado o no. Simplemente usemos el contexto. Si miras esto y piensas, oh, eso es tan simplista, todo lo que tienes es un número, sí, eso es cierto. Sabes, quiero decir, probablemente no necesitas usar un gestor de estado para esto, pero digamos que sí lo haces.
Así que el pensamiento de la vieja escuela sería como, bueno, vamos a tener nuestra tienda global, como hablé antes, y simplemente obtendremos un proveedor de redux, lo apuntaremos al global tienda, y ya está. Así que de nuevo, se vería así. Tendrías un proveedor, le darías una tienda que acabas de crear, y luego cuando quieras usarlo, le das un selector de uso o un despacho de uso y luego puedes hablar con esa tienda. Pensamiento de la nueva escuela, ¿cómo arreglamos eso? ¿Cómo arreglamos tener esa tienda en el espacio global de esa manera? Bueno, lo que haces es que puedes crear un nuevo componente, un nuevo componente de cliente, lo llamaremos proveedor de tienda, y simplemente moveremos esa tienda allí. Ahora, para cada solicitud, tenemos esa tienda de manera única dentro de ese árbol de componentes y evitamos cualquier tipo de potencial para la contaminación cruzada de solicitudes.
Así que donde solíamos tener algo como esto, ahora vamos a tener una función llamada crear tienda que hace exactamente lo mismo, pero te devuelve una tienda de manera dinámica. Así que puedes crear una nueva para cada solicitud en ese componente de cliente, así que vamos a ver qué es eso. Así que tenemos un proveedor de tienda, bastante simple, vamos a usar un use ref para almacenar el salida de esa creación de tienda, y luego simplemente usaremos el viejo proveedor de Redux para proporcionar eso a nuestros componentes. Si tienes algún tipo de estado inicial, puedes empezar con ese use ref siendo nulo, ir a comprobar si es nulo, crear la tienda si es nulo y luego inicializar la tienda usando un despacho. Y lo bueno de eso es que si tienes estado aquí en el proveedor de la tienda, estados disociados, también está haciendo otras cosas, no sé, algo más como mostrar el menú o lo que sea, entonces puedes ejecutar esto varias veces y sólo lo hará hacer esto en el inicio inicial. Para usarlo, simplemente usamos use selector, tal como lo hicimos antes. Lo mismo. Así que a partir de ahí, es como si estuvieras usando Redux. Aquí viene, sin embargo, cuando obtienes el estado por ruta. Porque, algo específico sobre esto. Así que digamos que tenemos nuestro, esta es nuestra tienda, ¿verdad? Tenemos dos nuevos componentes allí. También queremos conducir el profundo, y las revisiones.
Comments