1 00:00:02,220 --> 00:00:07,770 El estado es un concepto crucial y reacciona, y por lo tanto, es importante para mí que comprenda cómo 2 00:00:07,770 --> 00:00:08,160 funciona. 3 00:00:08,670 --> 00:00:14,340 U. S. estado es cómo administra el estado y los componentes funcionales y su estado puede ser cualquier cosa. 4 00:00:14,350 --> 00:00:15,510 No tiene que ser una matriz. 5 00:00:15,570 --> 00:00:20,580 Podría ser un texto, un número, un objeto, una matriz, un booleano, algo así. 6 00:00:21,570 --> 00:00:24,780 El estado de uso siempre devuelve una matriz con dos elementos. 7 00:00:24,870 --> 00:00:30,450 No importa cuál sea su estado, si su estado es un estado sin uso aún devuelve una matriz con exactamente dos 8 00:00:30,450 --> 00:00:30,930 elementos. 9 00:00:31,380 --> 00:00:35,760 Porque el primer elemento siempre es su última instantánea de estado. 10 00:00:36,210 --> 00:00:43,020 Y el segundo elemento es una función que le permite actualizar esa instantánea de estado siempre que actualice la 11 00:00:43,080 --> 00:00:44,350 instantánea de estado. 12 00:00:44,520 --> 00:00:46,020 Reaccionar hará dos cosas. 13 00:00:46,620 --> 00:00:49,950 Actualizará estos datos de estado almacenados internamente. 14 00:00:50,250 --> 00:00:56,130 Entonces, por ejemplo, aquí, cuando agreguemos nuestro primer objetivo nuevo, reemplazará el estado inicial con nuestro 15 00:00:56,130 --> 00:00:57,090 nuevo estado. 16 00:00:57,210 --> 00:01:00,150 En este caso, con la nueva gama que creamos con Concat. 17 00:01:00,870 --> 00:01:07,500 Y una vez que haya actualizado los datos internamente, llamará a esta función componente nuevamente y ejecutará la 18 00:01:07,500 --> 00:01:08,640 función completa. 19 00:01:08,850 --> 00:01:11,250 Y, por lo tanto, todo el re representa este J como código X. 20 00:01:12,020 --> 00:01:14,400 Ahora debajo del capó, no se renderizará todo el dom. 21 00:01:14,400 --> 00:01:20,250 Solo verificará qué partes del DOM deben actualizarse, pero volverá a evaluar todo el componente. 22 00:01:20,920 --> 00:01:27,030 Esto también significa, por supuesto, que vuelve a ejecutar el estado de uso, pero el estado de uso funciona internamente de modo 23 00:01:27,030 --> 00:01:32,400 que solo inicializa un estado estable cuando el componente se procesa por primera vez y para un reciclaje 24 00:01:32,400 --> 00:01:33,420 posterior de Rehren. 25 00:01:33,690 --> 00:01:39,630 Simplemente saca la última instantánea del estado e ignora básicamente el valor inicial que configuramos aquí. 26 00:01:41,580 --> 00:01:43,770 Así es como funciona un estado. 27 00:01:44,370 --> 00:01:49,140 Ahora, es importante entender que esta forma de actualizar nuestro patrimonio en este escenario no es la 28 00:01:49,140 --> 00:01:50,310 mejor manera posible. 29 00:01:50,670 --> 00:01:52,980 Tan duplicado y comentado. 30 00:01:53,160 --> 00:01:54,900 Entonces, ¿todavía lo tenemos como referencia? 31 00:01:54,930 --> 00:01:56,880 Pero también vemos el mejor enfoque. 32 00:01:57,390 --> 00:01:58,830 Este enfoque funciona claramente. 33 00:01:58,950 --> 00:02:00,600 Y en la mayoría de los casos, funcionará. 34 00:02:01,170 --> 00:02:06,750 Pero debe tener en cuenta que toda esta actualización de estado vuelve a representar parte de la reacción. 35 00:02:07,230 --> 00:02:08,880 ¿No es el fin manejado por reaccionar? 36 00:02:09,330 --> 00:02:15,180 Y cuando activas y declaras que no pausa todo e inmediatamente vuelve a ingresar a tu aplicación. 37 00:02:15,510 --> 00:02:17,910 En cambio, son horarios para actualizar el estado. 38 00:02:18,150 --> 00:02:23,550 Y si tiene una aplicación con muchas actualizaciones de estado en curso y se está realizando mucho trabajo, lo 39 00:02:23,820 --> 00:02:29,280 cual no es el caso y sí la aplicación, pero puede ser el caso y otras aplicaciones, entonces su 40 00:02:29,340 --> 00:02:32,010 actualización de estado podría diferirse unos pocos milisegundos. 41 00:02:32,580 --> 00:02:39,780 Eso significa que, en realidad, si un usuario hace clic, agrega oro varias veces, el núcleo de Skold, que actualmente se muestra 42 00:02:39,780 --> 00:02:45,900 en la pantalla, podría no ser nuestro último estado porque aún no se han procesado todas las actualizaciones 43 00:02:45,900 --> 00:02:46,950 de estado. 44 00:02:47,640 --> 00:02:53,670 Por lo tanto, existe una mejor forma de actualizar esto en lugar de pasar nuestros nuevos datos de estado para establecer los objetivos del 45 00:02:53,670 --> 00:02:53,970 curso. 46 00:02:54,360 --> 00:03:01,710 Puede pasar una función para establecer objetivos del curso, una función que recibe los últimos objetivos del curso pref de estado y 47 00:03:01,800 --> 00:03:05,670 tiene que devolver una nueva instantánea del estado y reaccionar bien. 48 00:03:05,670 --> 00:03:11,070 Luego, programe todas estas llamadas de función y le garantizamos que se ejecutan en el orden correcto, de modo 49 00:03:11,070 --> 00:03:17,160 que incluso si una actualización de estado se aplazó para el momento en que se ejecuta la actualización posterior, también le garantiza 50 00:03:17,160 --> 00:03:18,900 que se ejecute la primera. 51 00:03:19,470 --> 00:03:25,080 Y luego aquí simplemente darías Darfor por el oro de regreso, por supuesto, que todavía no es un nuevo objetivo de Ray 52 00:03:25,080 --> 00:03:25,440 Concat. 53 00:03:25,890 --> 00:03:28,680 Producirá el mismo resultado que antes en esta aplicación. 54 00:03:28,920 --> 00:03:31,850 Y en esta sencilla aplicación, este enfoque hubiera estado bien. 55 00:03:31,890 --> 00:03:39,270 Básicamente no hay posibilidad de reaccionar, aplazando actualizaciones tanto tiempo que terminaríamos con un estado incorrecto. 56 00:03:39,720 --> 00:03:43,050 Pero este es el enfoque a prueba de balas que siempre funcionará. 57 00:03:43,410 --> 00:03:49,680 Solo lo necesita si la actualización de su estado depende de los datos del estado anterior, como lo hace uno. 58 00:03:50,010 --> 00:03:55,860 Si la actualización de su estado es una nueva pieza de datos, que no depende del estado anterior, siempre puede 59 00:03:55,920 --> 00:03:58,380 usar este formulario no funcional de manera segura. 60 00:03:59,160 --> 00:04:03,150 Y aquí hay una nota al margen, porque, por supuesto, todo el acortamiento aprovecha la sintaxis 61 00:04:03,150 --> 00:04:06,780 de la función eral y elimina la declaración de retorno en las llaves. 62 00:04:07,050 --> 00:04:10,110 Como solo tenemos una expresión que devolvemos de inmediato. 63 00:04:10,710 --> 00:04:15,690 Entonces, ahora con ese anuncio, Brooks preguntó antes, pero este es un enfoque un poco más seguro y recomendó un 64 00:04:15,690 --> 00:04:16,080 enfoque. 65 00:04:16,110 --> 00:04:18,690 Si la actualización de su estado depende del estado anterior.