Skip to content

Commit cc6a51d

Browse files
author
codeporx
committed
'xd'
1 parent 1ece1ae commit cc6a51d

9 files changed

+513
-14
lines changed

app/tag-data.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"git": 2,
23
"github": 1,
34
"open-source": 1,
45
"contribuciones": 1,

data/blog/como-agregar-web-a-google-search-console.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ summary: 'En este artículo te enseñaré cómo agregar una web a Google Search
77
authors: ['default']
88
---
99

10-
# Cómo Agregar Una Web a Google Search Console
11-
1210
Google Search Console es una herramienta fundamental para los administradores de sitios web que buscan mejorar el SEO y monitorear el rendimiento de sus páginas en los resultados de búsqueda de Google. A través de ella, puedes obtener información valiosa sobre el tráfico, la indexación y los errores de tu sitio. Si aún no has agregado tu página a Google Search Console, aquí te explicamos cómo hacerlo.
1311

1412
## Paso 1: Acceder a Google Search Console

data/blog/como-contrubuir-a-un-Proyecto-open-source-en-gitHub.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ summary: 'En este artículo te enseñaré cómo contribuir a un proyecto Open So
77
authors: ['default']
88
---
99

10-
# Cómo Contribuir a un Proyecto Open Source en GitHub
11-
1210
En este artículo aprenderás paso a paso cómo realizar tus primeras contribuciones a proyectos de código abierto en GitHub, desde la creación de un fork hasta el envío de un pull request.
1311

1412
[pagina web de contribuyentes](https://opensoursegithub.netlify.app/)
Lines changed: 235 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,235 @@
1+
---
2+
title: '¿Cómo crear rutas en nextjs?'
3+
date: '2025-01-22'
4+
tags: ['nextjs', 'rutas', 'tutorial']
5+
draft: false
6+
summary: 'Aprende a crear rutas dinámicas y estáticas en Next.js de forma rápida y sencilla. Descubre cómo aprovechar el sistema de enrutamiento automático para mejorar tu desarrollo web.'
7+
authors: ['default']
8+
---
9+
10+
En este tutorial, te enseñaré a crear **rutas en Next.js** de manera sencilla y rápida. Next.js cuenta con un sistema de enrutamiento basado en archivos, lo que significa que no necesitas configurar un enrutador manualmente como en otros frameworks. ¡Todo se genera automáticamente!
11+
12+
---
13+
14+
## ¿Qué son las rutas en Next.js?
15+
16+
En Next.js, las rutas son **URLs** que apuntan a páginas específicas dentro de tu aplicación. Estas pueden ser:
17+
18+
- **Rutas estáticas**: Son páginas que no cambian, perfectas para contenido fijo.
19+
- **Rutas dinámicas**: Permiten manejar páginas que dependen de datos variables, como perfiles de usuario o productos.
20+
21+
---
22+
23+
## ¿Cómo crear una ruta estática en Next.js?
24+
25+
Crear una **ruta estática** en Next.js es muy simple. Solo necesitas agregar un archivo `page.tsx` dentro de la carpeta `anyname`. Por ejemplo:
26+
27+
1. Crea tu carpeta con el nombre de la ruta que quieres crear y dentro coloca un archivo page.tsx en este caso la carpeta de se llama anyname por lo tanto la ruta sera [http://localhost:3000/anyname](http://localhost:3000/anyname) y la estructura de carpetas debe ser la siguiente:
28+
29+
![estructura de carpetas](https://res.cloudinary.com/dq0pfesxe/image/upload/v1737549423/Captura_de_pantalla_2025-01-22_133653_zxsuvb.png)
30+
31+
```javascript
32+
// app/anyname/page.tsx
33+
import React from 'react'
34+
35+
const NOAfecta = () => {
36+
return (
37+
<div>
38+
<h2 className="text-6xl">
39+
No importa el nombre de la carpeta, pero el archivo dentro de la carpeta sí o sí debe
40+
llamarse page.tsx. El nombre que le coloques al componente no afecta, solo el nombre del
41+
archivo.
42+
</h2>
43+
</div>
44+
)
45+
}
46+
47+
export default NOAfecta
48+
```
49+
50+
2. Inicia tu servidor local con:
51+
```bash
52+
npm run dev
53+
```
54+
3. Ve a [http://localhost:3000/anyname](http://localhost:3000/anyname) y verás tu página estática funcionando.
55+
![rutas nextjs estaticas](https://res.cloudinary.com/dq0pfesxe/image/upload/v1737548920/Captura_de_pantalla_2025-01-22_132742_qlaiva.png)
56+
57+
¡Listo! Has creado tu primera ruta estática en Next.js. Ahora puedes agregar contenido y estilos a tu página como desees.
58+
59+
## ¿Cómo crear rutas dinámicas en Next.js?
60+
61+
Para crear **rutas dinámicas** en Next.js, seguimos una estructura de carpetas específica. La diferencia clave con las rutas estáticas es que los archivos que definen las rutas dinámicas deben tener corchetes `[]` en su nombre. Esto indica que la ruta espera un parámetro dinámico.
62+
63+
### Estructura de carpetas para rutas dinámicas
64+
65+
```bash
66+
- Projects
67+
-- page.tsx // Archivo estático para listar proyectos
68+
-- [id]
69+
--- page.tsx // Archivo dinámico para mostrar detalles de un proyecto
70+
```
71+
72+
![estructura rutas dinamica nextjs](https://res.cloudinary.com/dq0pfesxe/image/upload/v1737556881/Captura_de_pantalla_2025-01-22_153753_ofk5q5.png)
73+
74+
### ¿Cómo funciona?
75+
76+
En la ruta `/projects` se lista un conjunto de proyectos de forma estática.
77+
En la ruta `/projects/[id]`, se muestra la información de un proyecto específico de forma dinámica. Por ejemplo:
78+
79+
- [http://localhost:3000/projects/1](http://localhost:3000/projects/1)
80+
- [http://localhost:3000/projects/2](http://localhost:3000/projects/2)
81+
82+
---
83+
84+
## Ejemplo práctico: Rutas estáticas y dinámicas
85+
86+
### 1. Ruta estática: Listado de proyectos
87+
88+
Aquí creamos una lista estática de proyectos. Cada proyecto enlaza a su respectiva página dinámica utilizando el componente `Link` de Next.js.
89+
90+
#### Código: `page.tsx`
91+
92+
```javascript
93+
import Link from 'next/link'
94+
95+
// Simulamos una base de datos de proyectos
96+
const projects = [
97+
{
98+
id: 1,
99+
name: 'Sistema de Gestión de Inventarios',
100+
price: 1500,
101+
description: 'Un sistema para gestionar el inventario...',
102+
},
103+
{
104+
id: 2,
105+
name: 'Aplicación de Tareas',
106+
price: 800,
107+
description: 'Una aplicación para gestionar tareas diarias, con funcionalidades....',
108+
},
109+
{
110+
id: 3,
111+
name: 'Sitio Web de Comercio Electrónico',
112+
price: 3000,
113+
description: 'Un sitio web completo para comercio electrónico...',
114+
},
115+
]
116+
117+
export default function Home() {
118+
return (
119+
<div className="p-4">
120+
<h1 className="mb-4 text-2xl font-bold">Catálogo de Productos</h1>
121+
<ul className="space-y-2">
122+
{projects.map((project) => (
123+
<li key={project.id} className="rounded bg-white p-4 shadow">
124+
<Link href={`/projects/${project.id}`} className="text-blue-500 hover:underline">
125+
{project.name} - ${project.price}
126+
</Link>
127+
</li>
128+
))}
129+
</ul>
130+
</div>
131+
)
132+
}
133+
```
134+
135+
**Vista previa de la ruta estática:**
136+
![Ruta estática - Projects](https://res.cloudinary.com/dq0pfesxe/image/upload/v1737556888/Captura_de_pantalla_2025-01-22_153829_vjb7ui.png)
137+
138+
---
139+
140+
### 2. Ruta dinámica: Detalles del proyecto
141+
142+
En esta ruta, utilizamos el parámetro dinámico `id` para mostrar los detalles de un proyecto específico. Si el proyecto no existe, se devuelve un error 404.
143+
144+
#### Código: `[id]/page.tsx`
145+
146+
```javascript
147+
import { notFound } from "next/navigation";
148+
import Link from "next/link";
149+
150+
// Simulamos una base de datos de proyectos
151+
const projects = [
152+
{ id: 1, name: "Sistema de Gestión de Inventarios", price: 1500, description: "Un sistema para gestionar el inventario..." },
153+
{ id: 2, name: "Aplicación de Tareas", price: 800, description: "Una aplicación para gestionar tareas diarias, con funcionalidades...." },
154+
{ id: 3, name: "Sitio Web de Comercio Electrónico", price: 3000, description: "Un sitio web completo para comercio electrónico..." },
155+
];
156+
157+
export default function ProductPage({ params }: { params: { id: string } }) {
158+
const project = projects.find((p) => p.id === Number.parseInt(params.id));
159+
160+
if (!project) {
161+
notFound();
162+
}
163+
164+
return (
165+
<div className="p-4">
166+
<h1 className="text-2xl font-bold mb-4">{project.name}</h1>
167+
<p className="text-xl mb-2">Precio: ${project.price}</p>
168+
<p className="mb-4">{project.description}</p>
169+
<Link href="/projects" className="text-blue-500 hover:underline">
170+
Volver al catálogo
171+
</Link>
172+
</div>
173+
);
174+
}
175+
```
176+
177+
**Vista previa de la ruta dinámica:**
178+
![Ruta dinámica - Proyecto](https://res.cloudinary.com/dq0pfesxe/image/upload/v1737556842/blog/uin99wfkbwc1j2ip6nlp.png)
179+
180+
---
181+
182+
## Beneficios del sistema de rutas en Next.js
183+
184+
1. **Automatización**: No necesitas configurar un enrutador; solo define tu estructura de carpetas.
185+
2. **SEO optimizado**: Next.js genera páginas amigables para los motores de búsqueda.
186+
3. **Flexibilidad**: Combina rutas estáticas y dinámicas según las necesidades de tu aplicación.
187+
188+
---
189+
190+
## ¿Cómo funciona el sistema de rutas en Next.js?
191+
192+
1. **Rutas automáticas**: Cada archivo en la carpeta `pages` se convierte en una ruta automáticamente.
193+
2. **Jerarquía basada en carpetas**: Si creas carpetas dentro de `pages`, estas definen las subrutas.
194+
Por ejemplo:
195+
- `pages/contact.js``/contact`
196+
- `pages/blog/post.js``/blog/post`
197+
3. **Soporte para API**: Puedes crear rutas API con la misma estructura en la carpeta `pages/api`.
198+
199+
---
200+
201+
## Preguntas Frecuentes (FAQ)
202+
203+
### ¿Qué son las rutas estáticas en Next.js?
204+
205+
Son páginas cuyo contenido no cambia y no depende de datos dinámicos. Son ideales para secciones como "Acerca de" o "Contacto".
206+
207+
---
208+
209+
### ¿Qué son las rutas dinámicas en Next.js?
210+
211+
Permiten generar páginas basadas en datos variables, como IDs de productos o nombres de usuarios. Se crean usando corchetes `[ ]` en los nombres de los archivos.
212+
213+
---
214+
215+
### ¿Necesito configurar un enrutador en Next.js?
216+
217+
No. Next.js utiliza un sistema de rutas basado en archivos, por lo que no necesitas configurar un enrutador manualmente.
218+
219+
---
220+
221+
### ¿Cómo creo subrutas en Next.js?
222+
223+
Puedes crear carpetas dentro de `pages` para definir subrutas. Por ejemplo:
224+
225+
- `pages/blog/post.js` corresponde a `/blog/post`.
226+
227+
---
228+
229+
### ¿Puedo usar rutas dinámicas con datos de una API?
230+
231+
Sí. Next.js permite combinar rutas dinámicas con funciones como `getStaticProps` o `getServerSideProps` para cargar datos en tiempo de construcción o en tiempo real.
232+
233+
---
234+
235+
Con esta guía, ya puedes comenzar a crear rutas en Next.js de forma eficiente. ¡Aprovecha el poder del enrutamiento automático para desarrollar aplicaciones modernas y escalables! 🚀

data/blog/como-usar-ngrok-para-ver-tu-web-local-en-cualquier-dispositivo-sin-necesidad-de-subirla.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ summary: 'Descubre cómo configurar y usar ngrok para acceder a tu servidor loca
77
authors: ['default']
88
---
99

10-
# Guía completa para usar ngrok y acceder a tu sitio web local desde cualquier dispositivo
11-
1210
Si eres desarrollador web, seguramente te has encontrado con la necesidad de probar tu sitio en otros dispositivos, como un móvil o una tablet, sin subirlo a un servidor. En esta guía, te enseñaré a usar **ngrok**, una herramienta que te permite exponer tu servidor local mediante una URL pública, de forma fácil y rápida.
1311

1412
## ¿Qué es ngrok?

data/blog/como-usar-un-dominio-hostinger-en-vercel.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ summary: 'En este artículo te enseño cómo configurar un dominio comprado en H
77
authors: ['default']
88
---
99

10-
# Cómo Usar Un Dominio de Hostinger en Vercel
11-
1210
Si compraste un dominio en **Hostinger** y deseas asociarlo a un proyecto alojado en **Vercel**, este tutorial te guiará a través de los pasos necesarios para configurarlo correctamente. Este proceso te permitirá tener un dominio personalizado para tu aplicación web, mejorando la imagen profesional de tu proyecto y optimizando su visibilidad en los motores de búsqueda.
1311

1412
## Paso 1: Comprar y Configurar el Dominio en Hostinger

data/blog/lista-de-comandos-de-git.mdx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@ summary: 'Una lista de comandos de Git que te ayudarán a gestionar tu repositor
77
authors: ['default']
88
---
99

10-
# Lista de Comandos de Git
11-
1210
Aquí encontrarás una lista completa de comandos de Git organizados por categoría, con ejemplos y descripciones para ayudarte a gestionar tus repositorios y colaborar con otros desarrolladores.
11+
1312
## Tabla de Contenidos
1413

1514
- [Configuración Inicial](#configuración-inicial)
@@ -28,6 +27,7 @@ Aquí encontrarás una lista completa de comandos de Git organizados por categor
2827
- [Manejo de Etiquetas](#manejo-de-etiquetas)
2928
- [Sincronización con un Repositorio Upstream](#sincronización-con-un-repositorio-upstream)
3029
- [Estado del Repositorio](#estado-del-repositorio)
30+
3131
## Configuración Inicial
3232

3333
Antes de empezar a usar Git, debes configurarlo con tu información de usuario. Estos comandos aseguran que los commits estén asociados a tu identidad y que la interfaz sea más legible.
@@ -64,8 +64,6 @@ git add docs/*.txt # Añade archivos .txt dentro del directorio 'doc
6464

6565
Guardar los cambios en el historial del repositorio es el corazón de Git. Aprende a realizar commits con mensajes claros, modificar commits anteriores y comprometer directamente cambios rastreados.
6666

67-
68-
6967
```bash
7068
git commit -m "Mensaje del commit" # Commit con mensaje
7169
git commit -a -m "Mensaje del commit" # Salta `git add` para archivos ya rastreados
@@ -179,7 +177,6 @@ git push --tags # Envía etiquetas al repositori
179177

180178
Colabora en proyectos que tienen un repositorio principal (upstream). Sincroniza tus cambios con el upstream para mantener tu trabajo al día.
181179

182-
183180
```bash
184181
git remote add upstream <url> # Añade un upstream
185182
git fetch upstream # Descarga cambios del upstream
@@ -198,4 +195,3 @@ git checkout -- <file> # Descarta cambios en un archivo
198195
---
199196

200197
¡Con estos comandos podrás gestionar tus proyectos con Git de manera más eficiente!
201-

0 commit comments

Comments
 (0)