Esta publicación es parte de una serie sobre el desarrollo de React para los desarrolladores de WordPress. En mi última publicación, abordé la prueba unitaria de los componentes React usando Jest. La broma, cuando se usa para declaraciones básicas y pruebas instantáneas, puede cubrir gran parte de la funcionalidad de un componente React. El “modo de reacción” del desarrollo de la interfaz requiere la composición de las interfaces, que son componentes, de componentes más pequeños. Jest nos permite probar cada componente de forma aislada, pero también tendremos que asegurarnos de que ese componente funcione según lo dispuesto cuando se visten entre sí.
Este artículo también cubre el pasaje en el bucle a través de los componentes React, por ejemplo, un componente de publicaciones que reproduce una serie de publicaciones usando un componente de publicaciones para cada uno, utilizando Matrix Iterates. Para acelerar el desarrollo aún más, abordaré cómo uso una utilidad de línea de comando para copiar de manera inteligente los componentes existentes en nuevos componentes. Probar los componentes vestidos en una aplicación React como escribí anteriormente, la transferencia de los accesorios a varios componentes es el lugar donde las aplicaciones se vuelven difíciles. Si desciende a varias capas, alcanza el “problema de perforación de los accesorios”.
El propor de perforación (también llamado “subproces”) se refiere al proceso a través del cual debe ir para obtener datos a las partes del componente reaccionando. Kent C. Dodds debería mencionar que el nuevo contexto API React es un enfoque alternativo para este problema. El contexto de la API es fuerte, pero primero aprendería de esta manera, luego vería el video de Wes Bos sobre el contexto y pensaría qué problemas podrías resolverte mejor con la API de contexto, luego con “perforación de accesorios”. Pero para algunas capas, esta estrategia es simple y el tipo de prop-type y la broma pueden tomar los problemas que introduce. Para crear un componente que circula a través de una serie de publicaciones y luego use tipos de propuestas para conectarlo de manera segura al componente existente Post existente . Usando Generact para copiar un componente en este momento, necesitamos un componente que sea casi el mismo que el existente. Una forma de reducir la cantidad de tipificación repetitiva que debemos hacer es cortar y pegar el componente existente y luego encontrar y reemplazar estratégicamente. Es aburrido y propenso a los errores. En su lugar, usemos Generact. Generact es un módulo que prácticamente hace esto, pero se construye en vista de los componentes React. Él es realmente cuidado y ahorra mucho tiempo. Generact debe instalarse a nivel mundial, lo que significa que debe hacerlo una vez, en la computadora:
Ahora, podemos ejecutar el comando “Generact” en nuestra aplicación para copiar cualquier componente:
En esta captura de pantalla de mi IDE, puedes ver que fui al director con la publicación, le dije que generara ese componente y lo pusiera un director anterior. Esto crea el director de publicaciones, que contiene las publicaciones y pruebas. Neato. Una nota importante. El hecho de que copió las pruebas es muy útil. El hecho de que haya copiado las instantáneas no es y causará errores, porque Jest se confunde sobre los archivos. En general, elimino la carpeta del instante y luego dejo que la broma la recree. Esas instantáneas no son válidas. Debe encaquetar las publicaciones y enviarlas a la publicación. Lo primero que debe hacer es actualizar ProppType para que las publicaciones sean “publicaciones” y contener una matriz. Aunque podría usar propptypes.Array para especificar una matriz, eso no es lo que realmente quiero. No quiero ninguna matriz. Quiero una matriz que contenga objetos con la forma de una publicación de WordPress. Entonces usé propptypes.arrayof. Podría usar esto para especificar, por ejemplo, una matriz que contiene solo cadenas. En este caso utilicé la forma de la publicación que ya tenía:

Esto muestra Proptype. Una vez que las pruebas funcionen y no antes, agregaré el bucle. Jest me deja trabajar itteivamente. Primero haga que el componente funcione, luego agregue funciones. Puedo repetir con seguridad sabiendo los efectos de mis cambios, porque primero tengo pruebas. Luego modificamos las pruebas en el componente post para cubrir este componente. Además de cambiar de publicaciones a publicación, pasamos de un objeto de publicación simulado a una matriz simulada de objetos de publicación:
Ahora que mi componente funciona, agregemos el bucle. Una mejora importante de ES5 a ES6 y no solo se mejora los iteradores de matriz. Array.ForEach () y Array.Map () facilita la repetición de una matriz, como la estructura de control de ForEach del PHP o cada método de jquey.
La diferencia entre MAP y foreach es que Foreach no devuelve un valor para cada iteración. Es útil para validar o mover cada uno o los elementos de una colección. Por otro lado, el mapa devuelve un valor para cada iteración. Por lo tanto, foreach es más rápido que MAP (), pero MAP () se puede usar cuando necesitamos decir que devuelva un componente React para cada elemento en una matriz. Esta es exactamente la razón por la que necesitamos: repita cada publicación y devuelve un componente posterior a la presentación. Aquí está el bucle:
Me amplié aquí para ver el bucle, porque mi propia “clave” es un paso necesario, pero no obvio. La clave es un accesorio especial. React está diseñado para actualizar el DOM solo cuando sea necesario. Esto se vuelve difícil con los bucles.
¿Cómo sabe si el elemento 3 en la matriz ha cambiado? Puedes creer que React analiza la matriz de todos sus objetos profundamente vestidos y los compara con la última vez que vio esa matriz. Si crees que te molestarás, como lo estaba cuando comencé a aprender a Reaccionar y los cambios en el estado no volvieron a regresar. ¿Por qué? React no compara las propiedades profundamente vestidas de una matriz. Usamos el elemento “clave” para indicar que este es un elemento único en la matriz. El uso de la identificación posterior en este contexto es excelente, porque es un identificador único, porque lo es.
Aquí está todo el componente:
Las pruebas ya no han tenido éxito porque la instantánea cambió cuando agregué el bucle.Nuevamente, inspeccioné el cambio, decidí que era lo que quería y luego acepté la nueva especificación. La regulación de los tipos de que sé que tienen dos componentes con tipos similares de soporte.Tengo el código idéntico que hace que las cosas sean muy similares en dos lugares.Eso huele mal.Sabía que era un problema cuando lo hice, pero no quería resolverlo de inmediato.Demasiados cambios simultáneamente significa que las fallas de las pruebas no son significativas.Pero este es un problema que quiero resolver.
Debido a que tengo pruebas en su lugar, cuando hago el cambio, sabré que ninguno de los componentes se ha roto.Para lograr esto, copiamos la forma en mi propio archivo:
Entonces puedo usar esto como lo es para mi propia publicación en la publicación:

También puedo usarlo dentro de Propptypes.ArraYOF () para las publicaciones en el componente de publicaciones:
Si presta especial atención, hemos agregado un elemento de reconocimiento de identificación al elemento de soporte postshape. Mi descripción de la publicación no ha sido completa y aún no lo está. Ahora, a medida que extiendo, tengo que hacer un cambio en un solo lugar. Asignando la responsabilidad única de administrar la forma de la publicación de esta constante, tengo una forma de cambiar esa forma que se puede mantener. ¿Qué pasa con los mecanografiados o el flujo? En mi última publicación de esta serie, abordé la configuración de los tipos de Pro para verificar el tipo de APE. Mencioné por qué a menudo pienso que el flujo o el mecanografiado no son necesarios debido a esta herramienta. Creo que vale la pena señalar que el último paso que he demostrado, creando una forma repetible para una publicación, es prácticamente una recreación mecanografiada. TypeScript le permite definir la forma, como la interfaz PHP en PHP OOP, para objetos. Actualmente, desarrollo módulos NPM para compartir los componentes React entre la aplicación web y el complemento. Para el cliente API utilicé Flow. Debido a que el módulo no usa React y todas mis pruebas HTTP usan datos simulados, la verificación de tipo fue muy importante para mí. Debido a que el flujo y el mecanografiado se compilan en JavaScript, la verificación de tipo se lleva a cabo. Bueno para proyectos más rígidos como API o clientes de CRUD. Para la interfaz de usuario, me gusta la simplicidad de los tipos de accesorios. También es una menos cosa que los nuevos desarrolladores tienen que aprender. Las pruebas de eventos en los componentes reaccionan hasta ahora, solo hemos analizado los componentes que reproducen contenido, pero no lo actualizamos. Si queremos un formulario?
Veamos cómo funciona. En primer lugar, hablemos de responsabilidades. Queremos mantener este componente “estúpido”: la lógica de la actualización del estado no es su preocupación. Seré transmitido a los accesorios y una función para comunicar al padre una modificación de un valor. La forma en que sus trabajos de los padres deben permanecer irrelevantes para el componente. Mantener los cambios en la gestión de los cambios es muy importante para la reutilización. Si su componente podría usarse en una pequeña aplicación utilizando un componente para administrar la condición, con Redux o dentro de un bloque Gutenberg, debe mantener el componente desacoplado por estos tres sistemas. Nuevamente, se aplica el principio de inyección de adicción. El manipulador de modificación es una dependencia de otra parte del programa, por lo que lo transmitimos en el componente. Para empezar, utilicé Generact, como la última vez, para crear una copia del componente de publicación y lo llamé una publicación. Luego agregué un nuevo tipo de Oncambio de proporción. Utilicé el tipo de accesorios para una función y lo hice necesario. Mis pruebas instantáneas crearon inmediatamente errores, porque no tenían estos accesorios. Para remediar esto, actualizamos las pruebas, por lo que proponer el margen recibió una función que no hace nada.
Estas pruebas unitarias ahora muestran que el componente se reproduce correctamente cuando se proporcionan los componentes correctos. Dios, pero no confiaría en que esto significa que el componente puede editar una publicación. Debemos probarlo simulando el evento de modificación en las entradas del editor. Los formularios y las entradas de los manipuladores para los componentes funcionales reaccionan en mi opinión, un componente es responsable de modelar el valor que envía a sus padres a través de la función de gestión de gestión. No quiero tener que crear un controlador para cambiar por el título y el contenido y el autor y las taxonomías de la publicación. Es demasiado. Quiero enviar la publicación y una función para llamar cuando se actualice la publicación. Esto significa que el componente es responsable de hacerse cargo del evento, extraer su valor y combinarlo con la publicación original. Hay algunas preocupaciones. No voy a una clase. Sí, necesito algunos cierres, puedo hacer esto aquí. En primer lugar, esta es nuestra función de administrar los cambios, internos al componente, que es responsable de combinar la actualización y los valores existentes: el componente Publicado comenzó como una copia de la publicación. Actualicemos que tenga una entrada para el título de publicación, se aplican las mismas reglas de introducción HTML, incluida una función que se llama al evento de modificación de entrada en el atributo Onchadi. Aquí está la entrada:
Aquí uso un cierre para tomar el evento, obtener su valor y crear la entrada para mi manejador de modificación interna. Ahora aquí está todo el componente:
Prueba de los componentes vestidos en una aplicación React
Tags Prueba de los componentes vestidos en
homefinance blog