Remix Flat Routes – Una Evolución en el Enrutamiento

Rate this content
Bookmark

Esta charla presenta la nueva convención Flat Routes que probablemente será la predeterminada en una futura versión de Remix. Simplifica la convención existente y también te brinda nuevas capacidades.

FAQ

Remix FlatRoutes es un paquete que permite una convención de enrutamiento simplificada en Remix, donde todas las rutas están visualmente accesibles en una sola carpeta sin carpetas anidadas. Su objetivo principal es hacer más fácil la visualización y gestión de rutas, permitir la co-ubicación de archivos de soporte, disminuir la fricción en refactorización y rediseño, y facilitar la migración desde otros frameworks.

Remix y Next.js utilizan convenciones distintas para los enrutamientos. Remix no diferencia entre rutas y diseños, y utiliza carpetas y exportaciones nombradas para meta, enlaces y límites de error. Next.js, por otro lado, requiere una carpeta para cada segmento de ruta y utiliza archivos separados para diseños y páginas, además de requerir carpetas adicionales para cualquier segmento que añada un diseño.

En Remix FlatRoutes, un diseño sin ruta se implementa utilizando un solo guion bajo (_) como prefijo en el nombre del archivo, en lugar de un diseño anidado que requeriría una carpeta. Esto simplifica la estructura del proyecto al no necesitar carpetas adicionales para cada diseño o ruta.

Remix FlatRoutes cambia las convenciones de nomenclatura de archivos al usar puntos en lugar de barras para separar los segmentos de la URL en el nombre del archivo. Además, utiliza un guion bajo al final del nombre del archivo para especificar que un segmento no es un diseño cuando no tiene una salida.

Remix FlatRoutes facilita la refactorización y el rediseño de interfaces de usuario al eliminar la necesidad de múltiples carpetas anidadas, lo que simplifica la estructura del proyecto y reduce la complejidad al ajustar los nombres de archivos en lugar de gestionar carpetas y rutas anidadas.

Para migrar a Remix usando Remix FlatRoutes, se utiliza una herramienta de migración incluida en el paquete que transfiere las rutas existentes a la nueva estructura de archivos planos o carpetas planas. Esto permite una transición suave manteniendo la configuración de ruta original.

Michael Carter
Michael Carter
16 min
18 Nov, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Remix Flat Routes es una nueva convención que tiene como objetivo facilitar la visualización y organización de las rutas en tu aplicación. Permite la co-ubicación de archivos de soporte con rutas, disminuye la fricción de refactorización y rediseño, y ayuda a las aplicaciones a migrar a Remix. La convención de Carpetas Planas admite la co-ubicación y permite importar activos como importaciones relativas. Para migrar aplicaciones existentes a Flat Routes, use la herramienta de migración del paquete Remix Flat Routes.

1. Introducción a Remix Flat Routes

Short description:

Hola, soy Michael Porter. Voy a hablar en RemixConf Europe sobre Remix Flat Routes y la Evolución en el Enrutamiento. Comenzaré con una breve introducción a la convención de enrutamiento actual. Remix utiliza carpetas para determinar el diseño principal, mientras que Next.js requiere una carpeta para cada segmento de la ruta. Next.js también utiliza archivos separados para las exportaciones nombradas, lo que lleva a un gran número de archivos. Sin embargo, Next.js permite la co-ubicación de archivos de soporte en la carpeta de la ruta.

Hola, soy Michael Porter. Puedes conocerme en línea como Killamon, que es una abreviatura de Killamonjaro. He sido un gran fan de los volcanos durante mucho tiempo. Estoy emocionado de hablarles hoy en RemixConf Europe. Mi presentación será sobre Remix Flat Routes y la Evolución en el Enrutamiento.

Primero, comenzaré dando una breve introducción sobre la convención de enrutamiento actual tal como la conocemos hoy. Aquí está una estructura de enrutamiento típica. Consiste en un diseño sin ruta para páginas públicas, como la página acerca de, una sección de usuario con su propio diseño que tiene una vista de lista, una vista detallada del usuario, así como una página de edición. Remix utiliza carpetas para determinar el diseño principal. Se espera que el diseño principal incluya una salida para renderizar sus hijos. En este ejemplo, no hay una carpeta de ID de usuario porque queremos que la página de edición utilice el mismo diseño de usuario que las otras rutas. Dado que la página de edición no está anidada, utilizamos el punto para el diseño plano en lugar del diseño anidado. Cuando creas un diseño anidado, Remix te exige que crees una carpeta para sus hijos, más un archivo para el diseño en sí. Desafortunadamente, uno de los inconvenientes de esta convención es que la carpeta en un archivo de diseño termina separada en tu editor, ya que las carpetas suelen mostrarse primero. Esto puede ser molesto, especialmente en aplicaciones grandes con muchas rutas.

Como sabes, Next.js recientemente introdujo su propia versión de diseños anidados. Comparemos su convención con Remix. Aquí está la misma estructura de enrutamiento que el ejemplo anterior. Next.js utiliza paréntesis para diseños sin ruta, similar al prefijo de doble subrayado de Remix. Lo primero que notarás es que Next.js requiere una carpeta para cada segmento de la ruta. La ruta hoja es un archivo llamado página. Si un segmento de ruta añade un diseño, creas un archivo de diseño. Con Next., los diseños y las páginas son cosas separadas, mientras que Remix no diferencia. De nuevo, mirando nuestra ruta de edición de usuario, Next.js busca el diseño más cercano, que es usuario / diseño. Otra gran diferencia con Remix es que Remix utiliza exportaciones nombradas para cosas como meta, enlaces, encabezados, límites de error, etcétera. Y Next.js utiliza archivos separados para cada uno. Esto puede resultar en un gran número de archivos, dependiendo de las necesidades de tu aplicación. Llevó a una persona en Twitter a publicar esta captura de pantalla. Concedido, este es un ejemplo extremo. Uno de los beneficios de una carpeta para cada ruta, sin embargo, es que Next.js te permite co-ubicar archivos de soporte en la carpeta de la ruta.

2. Introducción a Remix FlatRoutes

Short description:

Remix FlatRoutes es una nueva convención que tiene como objetivo facilitar la visualización y organización de las rutas en tu aplicación. Permite la co-ubicación de archivos de soporte con rutas, disminuye la fricción de refactorización y rediseño, y ayuda a las aplicaciones a migrar a Remix. FlatRoutes fue introducido por primera vez por Brian Florence y desde entonces se ha implementado como un paquete separado. Para agregarlo a tu aplicación, simplemente npm install dash d RemixFlatRoutes.

Cosas como CSS, componentes, imágenes, etcétera. Esto es una de las principales cosas que los desarrolladores de Remix han estado pidiendo. Discutiremos cómo Remix FlatRoutes apoya esto en breve.

Ahora que hemos aclarado eso, hablemos de la nueva convención Remix FlatRoutes. Actualmente es un paquete MPM separado, pero se incluirá en una futura versión de Remix como funcionalidad central.

Entonces, ¿cuáles son los objetivos de Remix FlatRoutes? Hacer más fácil ver la ruta que tu aplicación está diseñada. Simplemente abre la carpeta de Rutas, y todas están ahí. Dado que el sistema de archivos generalmente ordena las carpetas primero, cuando tienes docenas de rutas, es difícil ver qué carpetas tienen diseños y cuáles no hoy en día. Ahora todas las rutas relacionadas están ordenadas juntas. Permitir la co-ubicación de archivos de soporte con rutas. Verás cómo puedes mantener tus estilos, componentes y otros archivos de soporte con tus rutas. Disminuir la fricción de refactorización y rediseño. Aunque los editores de code son bastante buenos corrigiendo las importaciones cuando mueves archivos, y Remix tiene el alias de importación tilde, es generalmente más fácil refactorizar una base de code que no tiene un montón de carpetas anidadas. Remix ya no requerirá esto. Además, al rediseñar la user interface, es más sencillo ajustar los nombres de los archivos en lugar de crear y eliminar carpetas y mover rutas para cambiar la forma en que se anidan. Y finalmente, ayudar a las aplicaciones a migrar a Remix. Las aplicaciones existentes generalmente no tienen una estructura de carpetas de rutas anidadas como las convenciones de hoy. Migrar a Remix es arduo porque tienes que lidiar con todas las importaciones. Además, como vimos con los nuevos diseños anidados de Next, FlatRoutes facilita la migración de otros frameworks a Remix.

Entonces, Remix FlatRoutes fue introducido por primera vez como un gist por Brian Florence el 7 de abril de este año. Publicó el enlace en el tablero de Remix, y yo casualmente lo vi. Y me intrigó porque yo también estaba buscando simplificar mi estructura de enrutamiento. Menos de dos semanas después, hice el primer commit implementando la especificación FlatRoutes. La parte más complicada fue tratar de averiguar cómo determinar el diseño padre cuando no había carpetas. Simplemente un nombre de archivo separado por un punto. Discutiremos cómo se implementó eso en un rato. Un punto interesante es que no fue hasta un mes después que Next.js publicó el primer RFC de diseños, describiendo su nueva convención de diseños anidados, que ahora está disponible como una característica experimental en Next.js 13. Como mencioné antes, Remix FlatRoutes está actualmente implementado como un paquete separado. Para agregarlo a tu aplicación, simplemente npm install dash d RemixFlatRoutes. Dado que las rutas se determinan en tiempo de construcción, esto es una dependencia de desarrollo y no se necesita en tiempo de ejecución.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Construyendo Mejores Sitios Web con Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Construyendo Mejores Sitios Web con Remix
Top Content
Remix es un nuevo marco de trabajo web de los creadores de React Router que te ayuda a construir mejores y más rápidos sitios web a través de una sólida comprensión de los fundamentos de la web. Remix se encarga de las tareas pesadas como la renderización del servidor, la división de código, la precarga y la navegación, y te deja con la parte divertida: ¡construir algo increíble!
No resuelvas problemas, elimínalos
React Advanced Conference 2021React Advanced Conference 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Los humanos son solucionadores de problemas naturales y somos lo suficientemente buenos en eso que hemos sobrevivido a lo largo de los siglos y nos hemos convertido en la especie dominante del planeta. Debido a que somos tan buenos en eso, a veces también nos convertimos en buscadores de problemas, buscando problemas que podemos resolver. Aquellos que logran sus objetivos de la manera más exitosa son los eliminadores de problemas. Hablemos de la distinción entre resolver y eliminar problemas con ejemplos de dentro y fuera del mundo de la codificación.
Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
¿Tienes un producto grande construido por muchos equipos? ¿Estás luchando para lanzar a menudo? ¿Se convirtió tu frontend en un monolito inmantenible masivo? Si, como yo, has respondido sí a cualquiera de esas preguntas, ¡esta charla es para ti! Te mostraré exactamente cómo puedes construir una arquitectura de micro frontend con Remix para resolver esos desafíos.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
Remix es un marco de trabajo web que te ofrece el modelo mental simple de una aplicación de múltiples páginas (MPA) pero el poder y las capacidades de una aplicación de una sola página (SPA). Uno de los grandes desafíos de las SPA es la gestión de la red que resulta en una gran cantidad de indirecciones y código defectuoso. Esto es especialmente notable en el estado de la aplicación que Remix elimina por completo, pero también es un problema en los componentes individuales que se comunican con un punto final de backend de un solo propósito (como una búsqueda de combobox, por ejemplo).
En esta charla, Kent demostrará cómo Remix te permite construir componentes de interfaz de usuario complejos que están conectados a un backend de la manera más simple y poderosa que hayas visto. Dejándote tiempo para relajarte con tu familia o lo que sea que hagas para divertirte.
Cómo hacer un juego web tú solo
JS GameDev Summit 2023JS GameDev Summit 2023
27 min
Cómo hacer un juego web tú solo
Nunca ha sido tan fácil hacer tu propio juego web, pero sigue siendo extremadamente difícil. ¿Qué juego deberías hacer? ¿Qué motor deberías elegir? Vamos a discutir cómo responder a estos problemas y formas de aprovechar la plataforma única que es la web.
Despliegue Atómico para Hipsters de JavaScript
DevOps.js Conf 2024DevOps.js Conf 2024
25 min
Despliegue Atómico para Hipsters de JavaScript
Desplegar una aplicación no es un proceso fácil. Te encontrarás con muchos problemas y puntos de dolor que resolver para que funcione correctamente. Lo peor es: ahora que puedes desplegar tu aplicación en producción, ¿cómo no vas a poder desplegar también todas las ramas del proyecto para tener acceso a vistas previas en vivo? ¿Y poder hacer un revert rápido a pedido?Afortunadamente, el clásico conjunto de herramientas de DevOps tiene todo lo que necesitas para lograrlo sin comprometer tu salud mental. Al mezclar expertamente Git, herramientas de Unix y llamadas a API, y orquestar todo ello con JavaScript, dominarás el secreto de los despliegues atómicos seguros.No necesitarás depender de servicios comerciales: ¡conviértete en el maestro perfecto de las herramientas y netlifica tu aplicación desde casa!

Workshops on related topic

Fundamentos de Remix
React Summit 2022React Summit 2022
136 min
Fundamentos de Remix
Top Content
Featured WorkshopFree
Kent C. Dodds
Kent C. Dodds
Construir aplicaciones web modernas está lleno de complejidad. Y eso solo si te molestas en lidiar con los problemas
¿Cansado de conectar onSubmit a las API del backend y asegurarte de que tu caché del lado del cliente se mantenga actualizada? ¿No sería genial poder utilizar la naturaleza global de CSS en tu beneficio, en lugar de buscar herramientas o convenciones para evitarla o trabajar alrededor de ella? ¿Y qué te parecería tener diseños anidados con una gestión de datos inteligente y optimizada para el rendimiento que simplemente funciona™?
Remix resuelve algunos de estos problemas y elimina completamente el resto. Ni siquiera tienes que pensar en la gestión de la caché del servidor o en los conflictos del espacio de nombres global de CSS. No es que Remix tenga APIs para evitar estos problemas, simplemente no existen cuando estás usando Remix. Ah, y no necesitas ese enorme y complejo cliente graphql cuando estás usando Remix. Ellos te tienen cubierto. ¿Listo para construir aplicaciones más rápidas de manera más rápida?
Al final de esta masterclass, sabrás cómo:- Crear Rutas de Remix- Estilizar aplicaciones de Remix- Cargar datos en los cargadores de Remix- Mutar datos con formularios y acciones
De vuelta a las raíces con Remix
React Summit 2023React Summit 2023
106 min
De vuelta a las raíces con Remix
Featured Workshop
Alex Korzhikov
Pavlik Kiselev
2 authors
La web moderna sería diferente sin aplicaciones ricas del lado del cliente respaldadas por potentes frameworks: React, Angular, Vue, Lit y muchos otros. Estos frameworks se basan en JavaScript del lado del cliente, que es su núcleo. Sin embargo, existen otros enfoques para el renderizado. Uno de ellos (bastante antiguo, por cierto) es el renderizado del lado del servidor completamente sin JavaScript. Descubramos si esta es una buena idea y cómo Remix puede ayudarnos con ello?
Prerrequisitos- Buen entendimiento de JavaScript o TypeScript- Sería útil tener experiencia con React, Redux, Node.js y escribir aplicaciones FrontEnd y BackEnd- Preinstalar Node.js, npm- Preferimos usar VSCode, pero también se pueden utilizar IDE en la nube como codesandbox (otros IDE también están bien)
Cómo Resolver Problemas del Mundo Real con Remix
Remix Conf Europe 2022Remix Conf Europe 2022
195 min
Cómo Resolver Problemas del Mundo Real con Remix
Featured Workshop
Michael Carter
Michael Carter
- ¿Errores? Cómo renderizar y registrar tus errores del servidor y del clientea - Cuándo devolver errores vs lanzar excepcionesb - Configurar servicios de registro como Sentry, LogRocket y Bugsnag- ¿Formularios? Cómo validar y manejar formularios de varias páginasa - Usar zod para validar los datos del formulario en tu acciónb - Pasar por formularios de varias páginas sin perder datos- ¿Atascado? Cómo solucionar errores o funciones faltantes en Remix para que puedas continuara - Usar patch-package para solucionar rápidamente tu instalación de Remixb - Mostrar herramienta para gestionar múltiples parches y seleccionar solicitudes de extracción abiertas- ¿Usuarios? Cómo manejar aplicaciones de varios inquilinos con Prismaa - Determinar el inquilino por el host o por el usuariob - Base de datos múltiples o base de datos única/múltiples esquemasc - Asegura que los datos del inquilino siempre estén separados de los demás
Construye y lanza un blog personal usando Remix y Vercel
Remix Conf Europe 2022Remix Conf Europe 2022
156 min
Construye y lanza un blog personal usando Remix y Vercel
Featured Workshop
Robert Pop
Robert Pop
En este masterclass aprenderemos cómo construir un blog personal desde cero usando Remix, TailwindCSS. El blog será alojado en Vercel y todo el contenido será servido dinámicamente desde un repositorio separado en GitHub. Utilizaremos HTTP Caching para las publicaciones del blog.
Lo que queremos lograr al final del masterclass es tener una lista de nuestras publicaciones de blog mostradas en la versión desplegada del sitio web, la capacidad de filtrarlas y leerlas individualmente.
Tabla de contenidos:- Configurar un proyecto de Remix con una pila predefinida- Instalar dependencias adicionales- Leer contenido desde GitHub- Mostrar contenido desde GitHub- Analizar el contenido y cargarlo en nuestra aplicación usando mdx-bundler- Crear una página separada para las publicaciones de blog para mostrarlas de forma independiente- Agregar filtros a la lista inicial de publicaciones de blog
Construyendo Tiendas Online de Alto Rendimiento con Shopify Hydrogen y Remix
React Advanced Conference 2023React Advanced Conference 2023
104 min
Construyendo Tiendas Online de Alto Rendimiento con Shopify Hydrogen y Remix
WorkshopFree
Alexandra Spalato
Alexandra Spalato
I. Introducción- Visión general de Shopify Hydrogen y Remix- Importancia del comercio electrónico sin cabeza y su impacto en la industria
II. Configurando Shopify Hydrogen- Instalando y configurando Hydrogen con Remix- Configurando la estructura del proyecto y los componentes
III. Creando Colecciones y Productos- Creando colecciones y productos utilizando los componentes React de Hydrogen- Implementando un Carrito de Compras- Construyendo un carrito de compras utilizando los componentes incorporados de Hydrogen
VI. Construyendo la página de inicio con Storyblok- Clonando el espacio y explicando cómo funciona- Implementando Storyblok en el repositorio- Creando los componentes Blok- Creando los componentes Shopify- Implementando personalización
Construyendo una aplicación en tiempo real con Remix y Supabase
Remix Conf Europe 2022Remix Conf Europe 2022
156 min
Construyendo una aplicación en tiempo real con Remix y Supabase
Workshop
Jon Meyers
Jon Meyers
Supabase y Remix hacen que sea fácil construir aplicaciones fullstack. En este masterclass, vamos a aprender cómo usar Supabase para implementar autenticación y autorización en una aplicación en tiempo real con Remix. Únete a Jon Meyers mientras construye esta aplicación desde cero y demuestra cómo puedes aprovechar el poder de las bases de datos relacionales!