eso es lo que se va a renderizar cuando el usuario llegue a la página de publicaciones. Así que ahí están las publicaciones. Y eso es todo, ese fue todo el ejercicio, simplemente agregar un enlace usando este componente de enlace que proviene de Remix. Y esto es en realidad solo una reexportación esencialmente de React Router. Hay algunas características adicionales pero en su mayor parte solo se está reexportando. Y de hecho, las características adicionales se están moviendo a React Router propiamente dicho. De todos modos, tenemos este enlace a la ruta de publicaciones y luego las publicaciones son un archivo dentro de las rutas llamado, con una exportación por defecto de lo que se debe renderizar cuando estamos en esa ruta. ¿Podría esa carpeta de publicaciones ser simplemente un archivo post.TSX o tiene que ser un archivo de índice? Buena pregunta. Sí, sí. Así que vamos a hacer esto ahora. Esto sería con la convención que actualmente tenemos para Remix en la estructura de archivos, simplemente puedes tener un archivo posts.TSX, así que podríamos poner todo esto aquí dentro y obtendríamos el mismo resultado y, por supuesto, podría eliminar esto o lo que sea, pero en los próximos ejercicios, también vamos a tener publicación/slug con el nombre de la publicación y así que eventualmente vamos a necesitar tener el directorio de la publicación. Y así, esto es efectivamente la página de inicio para la publicación, por lo que es la página de índice para la publicación y eso es con lo que acabamos de empezar, la página de índice. Pero no es necesariamente incorrecto tener este archivo porque podría haber algún tipo de navegación especial o pie de página que quieras para todas tus publicaciones y eso es lo que pondrías aquí. Hablaremos más de eso cuando lleguemos al enrutamiento anidado, al hacer la interfaz de usuario del administrador, pero solo para darte un ejemplo rápido de lo que es esto, esto sería la ruta principal de esta ruta de índice y todas las rutas dentro de este directorio de publicaciones y así los padres deben decir dónde se deben renderizar los hijos y la forma en que lo hacemos es a través del componente outlet de Remix que se ejecuta en React. Y ahora puedo decir renderizar mi outlet y lo envolveré en un div y diré aquí está mi contenido del pie de página y mi contenido del encabezado y luego venimos aquí y tengo mi contenido del encabezado, las publicaciones, esta es la ruta de índice que proviene de nuestro índice justo aquí, eso justo ahí y luego nuestro contenido del pie de página. Y así ahora cada ruta dentro del directorio de publicaciones va a tener el contenido del encabezado y envolverá cualquier ruta secundaria. Y eso es realmente útil y ahora esto está controlando parte del diseño para nosotros. Y luego simplemente diciendo dónde se deben renderizar los hijos. Pero realmente no queremos envolver nada. Así que solo haremos esto y ahora lo que estamos viendo es en realidad la ruta principal por defecto. Entonces, si no tienes una ruta principal, esto es básicamente nada. Es una estructura de enrutamiento algo así como React Router 6, que tiene un outlet y puede poner algo de enrutamiento dentro de ellos y tener padres. ¿Es algo así?
Sí, eso es exactamente lo que es. Remix utiliza React Router, Remix proviene de los creadores de React Router. Y así es, React Router está obteniendo muchas características geniales de Remix muy pronto. De acuerdo. Gracias. Sí, de hecho, hace un par de meses, tal vez un par de semanas en nuestro blog, escribimos esta publicación llamada remixing React Router, donde estamos tomando muchas de las características realmente geniales de React Router y llevándolas a, solo voy a dejar un enlace a eso en el discord, llevándolas a. o muchas de las características de Remix a React Router. Y en realidad, podríamos titular esta publicación de manera diferente y en lugar de decir remixing React Router, podríamos decir unreacting React Router porque básicamente estamos tomando todas, estamos tomando todas estas características de Remix y poniéndolas en React Router. Simplemente estamos separando las características principales de Remix y React. Y lo que eso nos permitirá hacer es que ahora React Router es un adaptador para el enrutador de Remix, y luego podemos hacer adaptadores para Vue, Angular, Svelte, Preact y todas estas cosas. Entonces, en realidad, todo el web va a poder aprovechar Remix, independientemente de qué biblioteca de UI decidas usar, lo cual es bastante significativo. Entonces, la versión futura, y esto lo tenemos en prelanzamiento en este momento, estamos pensando en lanzarlo esta semana o la próxima semana, donde tendremos el enrutador de Remix, y luego solo adaptadores para ese enrutador, lo cual es genial. Y los miembros de la comunidad ya están construyendo adaptadores para el enrutador de Remix, para Vue, Angular, Svelte y Preact. Y creo que puede haber otro, no recuerdo cuál, pero, sí, tiempos emocionantes, y sí. Así que definitivamente, Remix solo está utilizando React Router aquí.
Tengo una pregunta muy básica, tal vez, como Remix se ejecuta en el backend, no en el frontend, como, si tuvieras una aplicación React normal, se ejecutaría en el frontend como una aplicación de una sola página, pero Remix se ejecuta en el servidor Node o algo así, ¿verdad?
Sí, sí, pero es una SPA, una aplicación de una sola página cuando se hidrata, y así que si vas a tu página de inicio, eso se renderiza en el servidor, miras el código fuente y ves, como, todo el HTML y todo eso, pero cuando navegas a las publicaciones del blog, no obtienes una recarga completa de la página ni nada, simplemente cargamos el JavaScript necesario para esa página, y haremos lo mismo con el CSS y los datos y todo lo demás también. Así que es una transición del lado del cliente que está sucediendo aquí, por lo que obtienes transiciones de página, gestión de enfoque, todas esas cosas.
Ahora que hemos hecho el primer ejercicio, quiero tomar un momento para hablar sobre qué es Remix, y esta cosa con la que acabas de jugar por un segundo, así que Remix se enfoca en los estándares web y en la experiencia de usuario de las aplicaciones web modernas. Podríamos decir que estamos mezclando lo antiguo con lo nuevo, y así que en Discord, voy a decir levanten la mano, levanten la mano aquí, moveré esto para que puedan ver lo que estoy haciendo. Si han estado, o en realidad vamos a hacer cuántos años han estado en desarrollo web. Y así que si han estado durante nueve años, nueve, ahí vamos. Si han estado durante nueve o más, oh, vaya, eso debería haber estado aquí. No dejen de chatear. Solo vamos a hacer reacciones con emojis. Son demasiado rápidos. Si han estado durante nueve o más, entonces pongan nueve, de lo contrario pongan ocho o siete o sí, el número, ya lo entienden. Para mí, empecé en desarrollo web oficialmente en 2014. Así que eso me da ocho. Ahí vamos, genial. De hecho, tenemos bastantes de ustedes que han estado durante nueve o más años. Veamos. Así que para aquellos de ustedes que han estado durante nueve o más años, esto les resultará muy familiar y muy cómodo porque Remix toma las cosas que funcionaron muy bien en la web hace 10 años, y luego mezcla las cosas que funcionan muy bien en la web moderna en estos días. Así que lo que molesta a las personas que han estado involucradas en la web durante mucho tiempo acerca de la web moderna es lo difícil que es construir un sitio web en estos días. Hay tantas cosas que tienes que hacer. Tienes tus herramientas de construcción, tienes tus linters y formateadores, y tienes tu JSX, y tienes tus cosas de JavaScript. Y ahora tienes que administrar el estado en la interfaz de usuario y tantas cosas que tienes que hacer en estos días que no tenías que hacer antes. Y siempre me convencía y decía, bueno, sí, pero nuestras aplicaciones son mucho mejores de lo que solían ser. Podemos hacer mucho más de lo que solíamos poder hacer antes. Y sí, eso es cierto. El navegador es mucho más capaz. Buena suerte construyendo Figma a fines de los 90 o principios de los 2000. Sí, eso es absurdo. Así que eso es en lo que siempre me convencía. Pero lo que Remix logra hacer es, lo que nos gustaba de la forma antigua de construir sitios web es que no tenías que preocuparte por administrar el estado en el navegador. Todo el estado básicamente vivía en la base de datos y tal vez pondrías una caché en algún lugar para que las cosas fueran más rápidas.
Comments