<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Nextjs on Commentary of Takao</title><link>https://takao.blog/es/tags/nextjs/</link><description>Recent content in Nextjs on Commentary of Takao</description><generator>Hugo -- gohugo.io</generator><language>es</language><copyright>Commentary of Takao</copyright><lastBuildDate>Sun, 12 Jul 2026 04:12:51 +0900</lastBuildDate><atom:link href="https://takao.blog/es/tags/nextjs/index.xml" rel="self" type="application/rss+xml"/><item><title>Comparativa de generadores de sitios estáticos 2026</title><link>https://takao.blog/es/web/static-site-generators-2026-comparison/</link><pubDate>Tue, 05 May 2026 00:00:00 +0900</pubDate><guid>https://takao.blog/es/web/static-site-generators-2026-comparison/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/static-site-generators-2026-comparison-es.png" alt="Featured image of post Comparativa de generadores de sitios estáticos 2026" /&gt;&lt;p&gt;Los SSG han evolucionado. En 2026, las opciones principales ofrecen rendimiento, flexibilidad y DX mejorada.&lt;/p&gt;
&lt;h2 id="hugo"&gt;Hugo
&lt;/h2&gt;&lt;p&gt;Más rápido (&amp;lt;1ms por página). Go templates. Ideal para blogs y sitios de contenido. Ecosistema de temas maduro.&lt;/p&gt;
&lt;h2 id="astro"&gt;Astro
&lt;/h2&gt;&lt;p&gt;Islas de interactividad. Multi-framework (React, Vue, Svelte). Zero JS por defecto. Ideal para marketing sites y documentación.&lt;/p&gt;
&lt;h2 id="nextjs"&gt;Next.js
&lt;/h2&gt;&lt;p&gt;SSG + SSR + PPR. Más complejo pero más potente. Ideal para aplicaciones y e-commerce con contenido dinámico.&lt;/p&gt;</description></item><item><title>Partial Prerendering (PPR) en Next.js</title><link>https://takao.blog/es/web/nextjs-partial-prerendering-ppr/</link><pubDate>Tue, 10 Feb 2026 00:00:00 +0900</pubDate><guid>https://takao.blog/es/web/nextjs-partial-prerendering-ppr/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/nextjs-partial-prerendering-ppr-es.png" alt="Featured image of post Partial Prerendering (PPR) en Next.js" /&gt;&lt;p&gt;Partial Prerendering (PPR) combina contenido estático prerenderizado con contenido dinámico transmitido vía streaming en una misma página.&lt;/p&gt;
&lt;h2 id="el-problema"&gt;El problema
&lt;/h2&gt;&lt;p&gt;SSG: rápido pero contenido obsoleto. SSR: contenido fresco pero más lento. PPR ofrece lo mejor de ambos: HTML estático inmediato + partes dinámicas en streaming.&lt;/p&gt;
&lt;h2 id="cómo-funciona"&gt;Cómo funciona
&lt;/h2&gt;&lt;p&gt;Next.js prerenderiza el shell estático de la página. Los componentes dinámicos (con &lt;code&gt;cookies()&lt;/code&gt;, &lt;code&gt;headers()&lt;/code&gt;, &lt;code&gt;searchParams&lt;/code&gt;) se renderizan bajo demanda.&lt;/p&gt;
&lt;h2 id="configuración"&gt;Configuración
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;experimental.ppr = 'incremental'&lt;/code&gt; en next.config.js. Los componentes dinámicos se envuelven en Suspense. PPR solo aplica donde se detectan datos dinámicos.&lt;/p&gt;</description></item><item><title>Next.js 15 Stable: Mejores prácticas en producción</title><link>https://takao.blog/es/web/nextjs-15-stable-features-overview/</link><pubDate>Sun, 05 Oct 2025 00:00:00 +0900</pubDate><guid>https://takao.blog/es/web/nextjs-15-stable-features-overview/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/nextjs-15-stable-features-overview-es.png" alt="Featured image of post Next.js 15 Stable: Mejores prácticas en producción" /&gt;&lt;h2 id="introducción"&gt;Introducción
&lt;/h2&gt;&lt;p&gt;Next.js 15 llega con soporte para React 19, un modelo de caché rediseñado y mejoras importantes en APIs asíncronas. Por defecto, las solicitudes fetch NO se cachean, simplificando la previsibilidad del comportamiento.&lt;/p&gt;
&lt;h2 id="react-19-estable"&gt;React 19 estable
&lt;/h2&gt;&lt;p&gt;Next.js 15 se empareja con React 19 estable, permitiendo el React Compiler para memoización automática. Soporte completo para &lt;code&gt;use()&lt;/code&gt; y Server Actions.&lt;/p&gt;
&lt;h2 id="cambios-en-caché-por-defecto"&gt;Cambios en caché por defecto
&lt;/h2&gt;&lt;p&gt;En Next.js 14, fetch se cacheaba por defecto. En Next.js 15 NO se cachea — debes optar explícitamente con &lt;code&gt;cache: 'force-cache'&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Descifrando los mecanismos de caché del App Router de Next.js</title><link>https://takao.blog/es/web/nextjs-app-router-caching/</link><pubDate>Thu, 10 Apr 2025 00:00:00 +0900</pubDate><guid>https://takao.blog/es/web/nextjs-app-router-caching/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/nextjs-app-router-caching-es.png" alt="Featured image of post Descifrando los mecanismos de caché del App Router de Next.js" /&gt;&lt;h2 id="introducción"&gt;Introducción
&lt;/h2&gt;&lt;p&gt;El App Router de Next.js tiene cuatro capas de caché que pueden causar confusión. Este artículo explica cada una y cómo configurarlas.&lt;/p&gt;
&lt;h2 id="las-cuatro-capas"&gt;Las cuatro capas
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Router Cache&lt;/strong&gt; (cliente): Cache de navegación en el navegador, basada en sesión.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Request Memoization&lt;/strong&gt; (servidor): Desduplica fetch dentro de un mismo ciclo de renderizado.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data Cache&lt;/strong&gt; (servidor): Persiste respuestas de API entre solicitudes y usuarios.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Full Route Cache&lt;/strong&gt; (servidor): HTML estático y payloads RSC en tiempo de build.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="request-memoization"&gt;Request Memoization
&lt;/h2&gt;&lt;p&gt;Si la misma URL se fetch múltiples veces en el mismo árbol de componentes, solo la primera ejecuta la llamada API. Las siguientes leen de la caché de memoización.&lt;/p&gt;</description></item><item><title>Routing i18n en Next.js App Router</title><link>https://takao.blog/es/web/nextjs-i18n-routing/</link><pubDate>Tue, 08 Oct 2024 00:00:00 +0900</pubDate><guid>https://takao.blog/es/web/nextjs-i18n-routing/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/nextjs-i18n-routing-es.png" alt="Featured image of post Routing i18n en Next.js App Router" /&gt;&lt;p&gt;Next.js App Router ofrece routing internacionalizado con detección de idioma, redirecciones y Middleware. Soporta subpath y dominio.&lt;/p&gt;
&lt;h2 id="configuración"&gt;Configuración
&lt;/h2&gt;&lt;p&gt;Define &lt;code&gt;locales&lt;/code&gt; en next.config.js. &lt;code&gt;defaultLocale&lt;/code&gt;. Middleware detecta el idioma preferido del navegador y redirige. El path incluye &lt;code&gt;/es&lt;/code&gt;, &lt;code&gt;/ja&lt;/code&gt;, etc.&lt;/p&gt;
&lt;h2 id="estrategias-de-routing"&gt;Estrategias de routing
&lt;/h2&gt;&lt;p&gt;Subpath: &lt;code&gt;/es/about&lt;/code&gt;, &lt;code&gt;/ja/about&lt;/code&gt;. Dominio: &lt;code&gt;es.example.com&lt;/code&gt;, &lt;code&gt;ja.example.com&lt;/code&gt;. Subdominio. El Middleware maneja la detección y redirección.&lt;/p&gt;
&lt;h2 id="next-intl"&gt;next-intl
&lt;/h2&gt;&lt;p&gt;Biblioteca recomendada para internacionalización en Next.js. Mensajes en JSON, formateo de fechas/números, plurales. Integración con App Router.&lt;/p&gt;</description></item><item><title>Middleware en Next.js: Redirects, rewrites y protección</title><link>https://takao.blog/es/web/nextjs-middleware/</link><pubDate>Tue, 18 Jun 2024 00:00:00 +0900</pubDate><guid>https://takao.blog/es/web/nextjs-middleware/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/nextjs-middleware-es.png" alt="Featured image of post Middleware en Next.js: Redirects, rewrites y protección" /&gt;&lt;p&gt;El Middleware de Next.js se ejecuta antes de cada solicitud, permitiendo redirecciones, reescrituras, autenticación y geolocalización en el edge.&lt;/p&gt;
&lt;h2 id="creación"&gt;Creación
&lt;/h2&gt;&lt;p&gt;Archivo &lt;code&gt;middleware.ts&lt;/code&gt; en la raíz del proyecto. Exporta &lt;code&gt;middleware(request)&lt;/code&gt; que retorna &lt;code&gt;NextResponse.next()&lt;/code&gt;, &lt;code&gt;redirect()&lt;/code&gt; o &lt;code&gt;rewrite()&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="matcher"&gt;Matcher
&lt;/h2&gt;&lt;p&gt;Configura las rutas donde se ejecuta el middleware: &lt;code&gt;export const config = { matcher: ['/dashboard/:path*'] }&lt;/code&gt;. Optimizado para ejecución en edge.&lt;/p&gt;
&lt;h2 id="casos-de-uso"&gt;Casos de uso
&lt;/h2&gt;&lt;p&gt;Autenticación (redirigir a login), localización (detectar idioma), A/B testing (cookies), geobloqueo, mantenimiento (rewrite a página de mantenimiento).&lt;/p&gt;</description></item><item><title>Optimización de imágenes con Next.js Image</title><link>https://takao.blog/es/web/nextjs-image-optimization/</link><pubDate>Tue, 26 Mar 2024 00:00:00 +0900</pubDate><guid>https://takao.blog/es/web/nextjs-image-optimization/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/nextjs-image-optimization-es.png" alt="Featured image of post Optimización de imágenes con Next.js Image" /&gt;&lt;p&gt;Next.js Image component optimiza imágenes automáticamente: formatos modernos (WebP, AVIF), lazy loading, y dimensiones responsive.&lt;/p&gt;
&lt;h2 id="nextimage"&gt;next/image
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-jsx" data-lang="jsx"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;import&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;Image&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;from&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;next/image&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;Image&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;src&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;/hero.jpg&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;width&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;{&lt;span style="color:#ae81ff"&gt;1200&lt;/span&gt;} &lt;span style="color:#a6e22e"&gt;height&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;{&lt;span style="color:#ae81ff"&gt;600&lt;/span&gt;} &lt;span style="color:#a6e22e"&gt;alt&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;Hero&amp;#34;&lt;/span&gt; /&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Optimización en tiempo de build o bajo demanda (servidor de optimización).&lt;/p&gt;
&lt;h2 id="formatos-y-calidad"&gt;Formatos y calidad
&lt;/h2&gt;&lt;p&gt;Next.js sirve WebP o AVIF si el navegador lo soporta. &lt;code&gt;quality&lt;/code&gt; (1-100, default 75). &lt;code&gt;sizes&lt;/code&gt; para imágenes responsive. &lt;code&gt;priority&lt;/code&gt; para LCP.&lt;/p&gt;
&lt;h2 id="remote-patterns"&gt;Remote patterns
&lt;/h2&gt;&lt;p&gt;Configura &lt;code&gt;remotePatterns&lt;/code&gt; en next.config.js para permitir imágenes de dominios externos. Protege contra abusos del optimizador.&lt;/p&gt;</description></item><item><title>React Server Components: El futuro del renderizado web</title><link>https://takao.blog/es/web/react-server-components/</link><pubDate>Mon, 08 Jan 2024 00:00:00 +0900</pubDate><guid>https://takao.blog/es/web/react-server-components/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/react-server-components-es.png" alt="Featured image of post React Server Components: El futuro del renderizado web" /&gt;&lt;p&gt;React Server Components (RSC) representan un cambio de paradigma. Los componentes se ejecutan exclusivamente en el servidor, enviando cero JavaScript al cliente. A diferencia del SSR tradicional, RSC produce un formato serializado especial (payload RSC) que el reconcilidor de React en el cliente usa para reconstruir el árbol de componentes sin ejecutar el código.&lt;/p&gt;
&lt;h2 id="límites-servidorcliente"&gt;Límites servidor/cliente
&lt;/h2&gt;&lt;p&gt;Las directivas &amp;ldquo;use client&amp;rdquo; y &amp;ldquo;use server&amp;rdquo; definen el límite. Componentes sin directiva son server components por defecto. Los server components no pueden usar estado, efectos o APIs del navegador.&lt;/p&gt;</description></item></channel></rss>