en el front end. Así que tomemos un componente simple, y creo que comenzaré con este enlace compartido porque probablemente es uno de los componentes más importantes de todo este proyecto. Así que voy a volver a Warp, y vamos a crear un componente. Así que hay una pregunta en el chat. Si la biblioteca actualiza su versión, por ejemplo, React Router, ¿Redwood lo recogerá? Seguro que sí, lo bueno de Redwood es que, por ejemplo, si storybook se actualiza, se encargará de eso por ti, así que si estoy trabajando aquí en la terminal, aparecerá un mensaje la próxima vez que esté listo para ejecutar Redwood y dirá que hay una actualización disponible para ti y tú simplemente ejecutarás yarn Redwood update, así que lo bueno es que no tienes que gestionar esas actualizaciones tú mismo Redwood se encarga de todo eso por ti, así que no sé tú, pero he tenido varios proyectos donde una dependencia como esa se actualiza y luego termino peleando y/o tratando de averiguar qué cambió y cómo necesita ser actualizado y el hecho de que Redwood se encargue de todo eso por ti es realmente agradable. Intentan ser muy conscientes de los cambios que rompen.
Lo que vamos a hacer, voy a abrir otro panel de terminal aquí y voy a crear este componente. Simplemente voy a decir Yarn Redwood Generate y los generadores que Redwood tiene son realmente una de sus características clave, creo, solo por hacer que sea fácil poder prototipar cosas rápidamente y poder crear tu aplicación. Así que puedo decir generar un componente y quiero generar un componente de enlace compartido. Así que voy a presionar enter. Y entonces notarás que hay algunos atajos allí para RW en lugar de Redwood y G en lugar de genera, pero ahora creó este componente para mí. Así que si vuelvo a VS code, podemos echar un vistazo dentro de ese directorio de componentes que acabamos de ver. Ahora hay una carpeta de enlace compartido, y hay tres archivos que se generan automáticamente cuando creas un componente. Así que tengo el componente en sí, y puedes ver que hay algún código de plantilla. Tenemos un archivo de testing, que es bastante genial, y luego también tenemos un archivo de storybook. Así que si vuelvo a mi storybook dentro de mi navegador, por aquí, debería poder ver, sí, ahí está mi componente de enlace compartido, y puedes ver que hay contenido dentro. Así que storybook es bastante genial, porque te permite desarrollar componentes de forma aislada. Así que si estás trabajando con un equipo de desarrollo, no necesariamente tienes que crear, digamos, como código ficticio que va a vivir en una página falsa, y luego decir, una vez que esto se implemente, borra esta página. Porque con storybook, puedes crear ese componente en aislamiento y luego poder entregarlo. Y también te mostraré, básicamente creará documentation para ti. Así que voy a entrar en mi componente de enlace compartido aquí. Y si esto es lo que estamos construyendo, este componente aquí que tiene el icono de votación, tenemos el título y una línea de autor aquí y una flecha. Así que lo que voy a hacer es que voy a construir esto. Así que tenemos, voy a crear un contenedor para mis enlaces de votación. Y por ahora, ya que no tengo las imágenes reales aquí. Simplemente voy a decir arriba y abajo. Y tendré otro div y esto tendrá nuestro título. Vamos a envolver eso en un H2. Y tengo algunos metadatos aquí. Así que lo pondré dentro de un div. Y así que déjame copiar este texto. Simplemente lo pegaré. Y verás, tenemos la cantidad de puntos, la persona que lo envió, y luego algunos comentarios. Y luego tenemos un enlace aquí en la parte derecha así que voy a poner esto como una flecha para salir así que ahora ya que tenemos acceso a Tailwind puedo decir nombre de clase y simplemente voy a usar flexbox para conseguir que nuestro icono de votación aquí y nuestro título y nuestra flecha estén todos en línea horizontalmente así que ahora voy a asegurarme de que esto abarque tanto espacio como pueda decir nombre de clase igual a flex uno y darle un guardar. Y ahora si revisamos esto dentro de storybook, puedes ver que ahí están mis enlaces de arriba abajo, tenemos el título y nuestros metadatos y luego la flecha aquí a la derecha. Así que lo que podemos hacer aquí, vamos a añadir un nombre de clase, hagamos esto flex, quiero que estos estén apilados uno encima del otro. Y luego quiero que también estén centrados creo que digo artículo centro sí así que esos están apilados en la parte superior vamos a añadir sólo un poco de espacio aquí así que diré brecha vamos a decir brecha cuatro en realidad podríamos ser precisos y ver lo que esto necesita ser así que en figma si digo seleccionar esta flecha y mantengo pulsada la tecla alt mostrará me cuáles son las dimensiones cuánto espacio y píxeles están en medio así que ahora voy a venir de vuelta aquí en realidad podemos cambiar esto a cinco así que puedes ver cómo podemos simplemente desarrollar directamente dentro de storybook para nuestros componentes de front end um no configuramos ninguna de nuestras fuentes personalizadas um voy a simplemente puedo parar puedo hacer eso si ustedes están interesados en ver eso pero yo simplemente voy a seguir moviéndome de esa manera podemos también llegar a la pieza de back end de trabajar con Redwood. Así que tengo mayúsculas, texto, y lo pondré en quizás 4XL. Ahora si volvemos, puedes ver que ahí está nuestro texto. Hagamos esto en negrita. Genial, y luego tenemos un enlace aquí, que quiero volver y manejar nuestros enlaces más tarde, pero vamos a pasar algunas props aquí. Así que notarás que estamos trabajando dentro de React aquí. Podemos decir que tenemos nuestros puntos. tal vez tenemos el autor y hagamos esto para el autor tal vez queremos el apodo del autor y tal vez queremos el primer nombre en realidad podemos hacer solo autor aquí como esto y especificar esos detalles con TypeScript así que tal vez queremos el recuento de comentarios queremos el título del enlace Y el enlace real. Así que ahora puedes ver que está, bien, está diciendo que necesito usar realmente estas cosas que he introducido. Así que hagamos eso. Voy a introducir al autor. Así que tal vez sea el primer nombre, autor.punto apellido. Y la ventana de zoom está en el camino. Ahí vamos. Ahora tenemos nuestro recuento de comentarios. Hagamos esto el título. y tal vez queremos que esto enlace aquí. Así que esto será el enlace. Bueno, tenemos los cimientos de nuestro componente. Ahora, si volvemos a Storybook, notarás, hey, nuestro componente ya no funciona. Y eso es porque estamos pasando estas props dinámicas que no sabe cómo mostrarlas. Así que si volvemos a Storybook, Esto está usando el formato de historia de componente C de Storybook, creo que se llama. Y, sí, hay una pregunta aquí para el repositorio. Déjame compartir eso muy rápido. Ahí tienes. Esto tiene la agenda y algunos de estos enlaces clave con los que estamos trabajando. Vale. así que aquí tenemos nuestro archivo de storybook, y esto está usando su versión actual de formato de historia. Y lo bueno de este formato en particular es que realmente se centra en, como, estás pasando tus props como un conjunto de argumentos. Y te mostraré por qué esto es bueno, pero podemos seguir adelante y copiar nuestras props aquí y pasarlas a nuestros componentes de historia. Así que digamos que tal vez tiene 100 puntos el autor, digamos nombre, apellido, y el recuento de comentarios aquí. Tal vez esto es 10. Eso es bueno. Haremos RedwoodJS y luego el enlace podemos disparar al sitio web de RedwoodJS. Necesita un comentario. Perfecto. Así que ahora que he pasado esas props y vengo a nuestra historia libro aquí, puedes ver que nuestro componente está funcionando. Y lo bueno es que mira esto. Hay un panel de controles aquí abajo así que puedo cambiar estos controles y puedes ver mi componente siendo actualizado en vivo aquí dentro de la parte superior. Así que si quieres ver, bien, esto se ve bien como Redwood JS, pero ¿qué pasa si tengo un título realmente largo? Generemos un poco de lorem ipsum. Digamos que tengo un título realmente largo aquí. ¿Cómo afecta eso a mi título entonces? No le gusta algo que escribí. Pero puedes empezar a ver, bien, ¿dónde se rompe el componente y qué necesito incluir? Veamos. Es gracioso que eso fuera. Oh, porque esperaba una cadena JSON. Veamos si eso. Ahí vamos. Así que es como, vaya, tal vez no es así como queremos estilizar nuestro título si es tan largo. o tal vez queremos poner en alguna validation allí para decir que un título sólo puede tener tantos caracteres o tantas palabras. También puedes cambiar el recuento de cómics. Y lo otro genial de Storybook es que puedes, si hubiera algún botón, puedes comprobar las acciones para asegurarte de que esas están siendo activadas correctamente aquí en el panel de acciones. Y luego bajo accessibility, también automáticamente ejecutará controles de accessibility para ti. Así que puedes decir, ¿están los encabezados no vacíos? ¿funcionan los colores y si hay alguna violación allí storybook también tiene algunas otras características que señalaré así que puedes ver mencioné accessibility pero también puedes cambiar como qué es lo que alguien con visión borrosa ve o alguien que tiene daltonismo así que es en escala de grises qué ven así que eso también es realmente útil cuando estás haciendo testing También puedes delinear todos estos divs así que puedes ver exactamente con qué estás trabajando.
Comments