[{"data":1,"prerenderedAt":2514},["ShallowReactive",2],{"app-menu-posts":3,"blog-vue-3-6-rc-vapor-mode-status-limits-evaluation-2026.en-en":1129,"blog-slug-sidebar-posts":2041},[4,55,93,126,154,186,219,256,286,315,340,374,406,436,464,491,519,546,572,597,622,657,686,714,740,768,796,821,848,875,906,931,959,988,1015,1042,1065,1085,1106],{"id":5,"title":6,"cover":7,"coverAlt":8,"date":9,"description":10,"draft":11,"extension":12,"locale":13,"meta":14,"navigation":25,"path":26,"schemaOrg":27,"seo":32,"series":33,"seriesDescription":33,"seriesOrder":33,"seriesTitle":33,"slug":33,"stem":34,"tags":35,"__hash__":54},"blog\u002Fblog\u002Fusefetch-vs-useasyncdata-vs-fetch-nuxt-4.es.md","useFetch vs useAsyncData vs $fetch en Nuxt 4","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1786757439\u002Fnuxt-4-usefetch-useasyncdata-dollarfetch-ssr_bhosyq.png","Comparación visual entre useFetch, useAsyncData y $fetch en Nuxt 4 para SSR, payload e hidratación.","2026-08-15","Aprende a elegir entre useFetch, useAsyncData y $fetch en Nuxt 4 según el tipo de carga, el flujo SSR, el payload, la reactividad y la propiedad del estado con Pinia.",false,"md","es",{"updatedAt":15,"author":16,"coverCaption":17,"keywords":18},"2026-08-14T21:30:00-05:00","TODOvue","Guía visual para elegir la API de datos adecuada en Nuxt 4.",[19,20,21,22,23,24],"useFetch vs useAsyncData vs $fetch","Nuxt 4 SSR","payload de Nuxt","hidratación en Nuxt","peticiones duplicadas","Pinia en Nuxt",true,"\u002Fblog\u002Fusefetch-vs-useasyncdata-vs-fetch-nuxt-4.es",[28],{"headline":6,"author":29,"datePublished":15,"@type":31},{"name":16,"@type":30},"Person","BlogPosting",{"title":6,"description":10},null,"blog\u002Fusefetch-vs-useasyncdata-vs-fetch-nuxt-4.es",[36,39,42,45,48,51],{"tag":37,"color":38},"Guías","#42B983",{"tag":40,"color":41},"SSR","#0E9AA7",{"tag":43,"color":44},"Composables","#14B8A6",{"tag":46,"color":47},"Reactividad","#1D5BA1",{"tag":49,"color":50},"Gestión de Estado","#FF9800",{"tag":52,"color":53},"Buenas Prácticas","#2196F3","CNtJm5gHXAQmsXaJjQNAyxsd9AYxM00UMJqaCSaFeCw",{"id":56,"title":57,"cover":58,"coverAlt":59,"date":60,"description":61,"draft":11,"extension":12,"locale":13,"meta":62,"navigation":25,"path":72,"schemaOrg":73,"seo":77,"series":33,"seriesDescription":33,"seriesOrder":33,"seriesTitle":33,"slug":33,"stem":78,"tags":79,"__hash__":92},"blog\u002Fblog\u002Fvue-3-6-rc-vapor-mode-status-limits-evaluation-2026.es.md","Vue 3.6 RC y Vapor Mode: estado real, límites y cómo evaluarlo en 2026","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1786479202\u002Fvue-3-6-rc-vapor-mode-status-limits-evaluation-2026_zadbpu.png","Comparación técnica entre el compilador estándar de Vue y Vapor Mode durante la etapa RC de Vue 3.6.","2026-08-11","Conoce el estado de Vue 3.6 RC y Vapor Mode, sus límites, riesgos y cómo evaluarlo con pruebas reproducibles antes de adoptarlo.",{"updatedAt":63,"author":16,"coverCaption":64,"keywords":65},"2026-08-11T15:22:20-05:00","Estado, límites y evaluación práctica de Vapor Mode durante la etapa RC de Vue 3.6.",[66,67,68,69,70,71],"Vue 3.6 RC y Vapor Mode","estado de Vapor Mode","límites de Vapor Mode","evaluar Vapor Mode","Vue 3.6.0-rc.3","rendimiento de Vue","\u002Fblog\u002Fvue-3-6-rc-vapor-mode-status-limits-evaluation-2026.es",[74],{"headline":57,"author":75,"datePublished":76,"@type":31},{"name":16,"@type":30},"2026-08-11T10:00:29.882-05:00",{"title":57,"description":61},"blog\u002Fvue-3-6-rc-vapor-mode-status-limits-evaluation-2026.es",[80,83,86,89],{"tag":81,"color":82},"Vapor Mode","#41B2A6",{"tag":84,"color":85},"Avanzado","#F54927",{"tag":87,"color":88},"Rendimiento","#D4A017",{"tag":90,"color":91},"Ecosistema","#68D4F2","7NVPCXoC3K80BryEzbsgejukHOsDW41C52eX5ekFJr8",{"id":94,"title":95,"cover":96,"coverAlt":97,"date":98,"description":99,"draft":11,"extension":12,"locale":13,"meta":100,"navigation":25,"path":111,"schemaOrg":112,"seo":115,"series":116,"seriesDescription":117,"seriesOrder":118,"seriesTitle":119,"slug":33,"stem":120,"tags":121,"__hash__":125},"blog\u002Fblog\u002Freactive-performance-shallowref-readonly-markraw-unnecessary-updates.es.md","Rendimiento reactivo en Vue: shallowRef, readonly, markRaw y actualizaciones innecesarias","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1785888143\u002Freactive-performance-shallowref-readonly-markraw-unnecessary-updates_ngtda7.png","Diagrama de límites de reactividad en Vue con shallowRef, readonly y markRaw.","2026-08-05","Aprende a elegir límites de reactividad en Vue, actualizar estado superficial correctamente y distinguir conversiones profundas de renderizados evitables.",{"updatedAt":101,"author":16,"coverCaption":102,"keywords":103},"2026-08-04T19:00:00-05:00","Diagrama sobre límites de reactividad en Vue.",[104,105,106,107,108,109,110],"rendimiento reactivo en Vue","shallowRef","readonly","markRaw","actualizaciones innecesarias en Vue","triggerRef","computed estable","\u002Fblog\u002Freactive-performance-shallowref-readonly-markraw-unnecessary-updates.es",[113],{"headline":95,"author":114,"datePublished":101,"@type":31},{"name":16,"@type":30},{"title":95,"description":99},"vue-reactivity","Ruta práctica para entender cómo Vue rastrea el estado, elegir la API reactiva correcta y optimizar actualizaciones sin perder claridad.",6,"Reactividad práctica en Vue 3","blog\u002Freactive-performance-shallowref-readonly-markraw-unnecessary-updates.es",[122,123,124],{"tag":46,"color":47},{"tag":87,"color":88},{"tag":52,"color":53},"oBAJ89cVLgN74tg-dtsqL34rlWOQlxtnr53Uhsnho-Q",{"id":127,"title":128,"cover":129,"coverAlt":130,"date":131,"description":132,"draft":11,"extension":12,"locale":13,"meta":133,"navigation":25,"path":142,"schemaOrg":143,"seo":146,"series":116,"seriesDescription":117,"seriesOrder":147,"seriesTitle":119,"slug":33,"stem":148,"tags":149,"__hash__":153},"blog\u002Fblog\u002Freactivity-in-composables-toref-torefs-and-how-not-to-lose-it-when-destructuring.es.md","Reactividad en composables: `toRef`, `toRefs` y cómo no perderla al desestructurar","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1785525834\u002Freactivity-in-composables-toref-torefs-and-how-not-to-lose-it-when-destructuring_tvgcff.png","Diagrama de un composable Vue que conserva la reactividad con toRef y toRefs.","2026-08-01","Aprende por qué la desestructuración puede desconectar el estado reactivo y cuándo usar refs directas, `toRef()` o `toRefs()` en composables de Vue.",{"updatedAt":134,"author":16,"coverCaption":135,"keywords":136},"2026-07-31T19:00:00-05:00","Referencia visual para una guía sobre utilidades de reactividad de Vue.",[137,138,139,140,141],"reactividad en composables Vue","toRef Vue","toRefs Vue","desestructurar reactive Vue","composables Vue","\u002Fblog\u002Freactivity-in-composables-toref-torefs-and-how-not-to-lose-it-when-destructuring.es",[144],{"headline":128,"author":145,"datePublished":134,"@type":31},{"name":16,"@type":30},{"title":128,"description":132},4,"blog\u002Freactivity-in-composables-toref-torefs-and-how-not-to-lose-it-when-destructuring.es",[150,151,152],{"tag":46,"color":47},{"tag":43,"color":44},{"tag":37,"color":38},"eDzhgQ-HLcrcD7ryWRdK_UUJSnNR3CKaWxkSg1Am9G4",{"id":155,"title":156,"cover":157,"coverAlt":158,"date":159,"description":160,"draft":11,"extension":12,"locale":13,"meta":161,"navigation":25,"path":171,"schemaOrg":172,"seo":175,"series":116,"seriesDescription":117,"seriesOrder":176,"seriesTitle":119,"slug":33,"stem":177,"tags":178,"__hash__":185},"blog\u002Fblog\u002Fref-vs-reactive-como-modelar-el-estado-en-vue-3.es.md","ref() vs reactive(): cómo modelar el estado en Vue 3","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1785199207\u002Fref-vs-reactive-como-modelar-el-estado-en-vue-3_j8hzro.png","Comparación entre ref() y reactive() para modelar estado reactivo en Vue 3","2026-07-27","Aprende a elegir entre ref(), reactive(), toRefs() y useState() según el tipo de dato, la desestructuración y el alcance SSR.",{"updatedAt":162,"author":16,"coverCaption":163,"keywords":164},"2026-07-27T18:31:41-05:00","Referencia oficial de Vue sobre los fundamentos de la reactividad",[165,166,167,168,169,170],"ref() vs reactive()","reactividad en Vue 3","estado en Vue 3","toRefs()","useState() en Nuxt","Composition API","\u002Fblog\u002Fref-vs-reactive-como-modelar-el-estado-en-vue-3.es",[173],{"headline":156,"author":174,"datePublished":162,"@type":31},{"name":16,"@type":30},{"title":156,"description":160},2,"blog\u002Fref-vs-reactive-como-modelar-el-estado-en-vue-3.es",[179,180,181,182,183,184],{"tag":46,"color":47},{"tag":49,"color":50},{"tag":37,"color":38},{"tag":43,"color":44},{"tag":40,"color":41},{"tag":52,"color":53},"4ri62At3pbdif7nXeHjvnk4eA0dEP-DbZgMfGU_ZNFM",{"id":187,"title":188,"cover":189,"coverAlt":190,"date":191,"description":192,"draft":11,"extension":12,"locale":13,"meta":193,"navigation":25,"path":201,"schemaOrg":202,"seo":206,"series":207,"seriesDescription":208,"seriesOrder":118,"seriesTitle":209,"slug":33,"stem":210,"tags":211,"__hash__":218},"blog\u002Fblog\u002Fpinia-in-vue-3-when-to-use-global-state-and-when-not-to.es.md","Pinia en Vue 3: cuándo usar estado global y cuándo no","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1784941922\u002Fpinia-in-vue-3-when-to-use-global-state-and-when-not-to_aztyma.png","Diagrama de decisión para elegir entre estado local, props y eventos, composables o Pinia en Vue 3.","2026-07-25","Aprende a decidir si un dato debe vivir en un componente, un subárbol o una store de Pinia según sus consumidores, duración y lógica compartida.",{"updatedAt":194,"author":16,"coverCaption":195,"keywords":196},"2026-07-26T00:00:00-05:00","Referencia visual para decidir el alcance del estado en Vue 3.",[197,198,199,49,200,43],"State","Pinia","Vue 3","Arquitectura","\u002Fblog\u002Fpinia-in-vue-3-when-to-use-global-state-and-when-not-to.es",[203],{"headline":188,"author":204,"datePublished":205,"@type":31},{"name":16,"@type":30},"2026-07-24T23:20:00-05:00",{"title":188,"description":192},"vue-3-architecture","Serie práctica para diseñar aplicaciones Vue 3 mantenibles mediante comunicación clara entre componentes, lógica reutilizable, dependencias acotadas y una gestión intencional del estado.","Arquitectura de aplicaciones en Vue 3","blog\u002Fpinia-in-vue-3-when-to-use-global-state-and-when-not-to.es",[212,213,215,216,217],{"tag":49,"color":50},{"tag":200,"color":214},"#4CAF50",{"tag":52,"color":53},{"tag":43,"color":44},{"tag":40,"color":41},"HOD-MgWjq0ELvp4Sgos3olc_qJbRXYe26_GuDpSXnio",{"id":220,"title":221,"cover":222,"coverAlt":223,"date":224,"description":225,"draft":11,"extension":12,"locale":13,"meta":226,"navigation":25,"path":235,"schemaOrg":236,"seo":240,"series":207,"seriesDescription":208,"seriesOrder":241,"seriesTitle":209,"slug":33,"stem":242,"tags":243,"__hash__":255},"blog\u002Fblog\u002Fvue-3-component-architecture.es.md","Arquitectura de componentes en Vue 3: comunicación, reutilización y dependencias","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1783729357\u002Fvue-3-component-architecture_ecetna.png","Guía de Vue.js sobre arquitectura y componentes reutilizables","2026-07-10","Aprende a elegir entre props, eventos, slots, atributos heredados, composables y provide\u002Finject para diseñar componentes Vue 3 claros y mantenibles.",{"updatedAt":194,"author":16,"coverCaption":227,"keywords":228},"Referencia oficial de Vue.js sobre componentes",[229,230,231,232,233,234],"Componentes","arquitectura de componentes en Vue 3","props y eventos","slots en Vue 3","composables","provide\u002Finject","\u002Fblog\u002Fvue-3-component-architecture.es",[237],{"headline":221,"author":238,"datePublished":239,"@type":31},{"name":16,"@type":30},"2026-07-10T17:19:30-05:00",{"title":221,"description":225},1,"blog\u002Fvue-3-component-architecture.es",[244,246,247,248,249,252],{"tag":229,"color":245},"#41B883",{"tag":200,"color":214},{"tag":52,"color":53},{"tag":43,"color":44},{"tag":250,"color":251},"Eventos","#2D98DA",{"tag":253,"color":254},"Slots","#8E44AD","BaFZob8eRi9VR8OCyHwWlNIYLAdT7a-5PZC1sFT00E8",{"id":257,"title":258,"cover":259,"coverAlt":260,"date":261,"description":262,"draft":11,"extension":12,"locale":13,"meta":263,"navigation":25,"path":272,"schemaOrg":273,"seo":277,"series":116,"seriesDescription":117,"seriesOrder":278,"seriesTitle":119,"slug":33,"stem":279,"tags":280,"__hash__":285},"blog\u002Fblog\u002Fvue-computed-watch-watcheffect-guide.es.md","Vue computed vs watch vs watchEffect: cuándo usar cada uno","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1783385054\u002Fvue-computed-watch-watcheffect-guide_vepplp.png","Conceptos de reactividad en Vue representados como flujos de datos conectados","2026-07-07","Aprende la diferencia práctica entre computed, watch y watchEffect en Vue 3, con ejemplos, errores comunes y una guía de decisión para componentes reales.",{"updatedAt":264,"coverCaption":265,"author":16,"keywords":266},"2026-07-27T00:00:00-05:00","Computed, watchers y efectos en Vue 3 por TODOvue",[267,199,268,269,270,271,170],"Vue.js","computed","watch","watchEffect","reactividad","\u002Fblog\u002Fvue-computed-watch-watcheffect-guide.es",[274],{"headline":258,"author":275,"datePublished":276,"@type":31},{"name":16,"@type":30},"2026-07-06T20:00:00-05:00",{"title":258,"description":262},3,"blog\u002Fvue-computed-watch-watcheffect-guide.es",[281,282,283,284],{"tag":46,"color":47},{"tag":52,"color":53},{"tag":87,"color":88},{"tag":37,"color":38},"a8l5u3F8H-uZBX5TmLAKFBuRfvIoE5kOjfOeaSHyk-A",{"id":287,"title":288,"cover":289,"coverAlt":288,"date":290,"description":291,"draft":11,"extension":12,"locale":13,"meta":292,"navigation":25,"path":300,"schemaOrg":301,"seo":305,"series":207,"seriesDescription":208,"seriesOrder":176,"seriesTitle":209,"slug":33,"stem":306,"tags":307,"__hash__":314},"blog\u002Fblog\u002Fvue-3-props-emits-component-communication.es.md","Props y Emits en Vue 3: comunicación entre componentes","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1782863303\u002Fvue-3-props-emits-component-communication_chbuab.png","2026-07-01","Aprende cómo usar props y emits en Vue 3 para pasar datos hacia componentes hijos y comunicar eventos hacia componentes padres de forma clara.",{"updatedAt":194,"coverCaption":293,"author":16,"keywords":294},"Comunicación entre componentes en Vue 3 por TODOvue",[267,199,295,296,297,298,299],"props","emits","componentes","defineProps","defineEmits","\u002Fblog\u002Fvue-3-props-emits-component-communication.es",[302],{"headline":288,"author":303,"datePublished":304,"@type":31},{"name":16,"@type":30},"2026-06-30T20:00:00-05:00",{"title":288,"description":291},"blog\u002Fvue-3-props-emits-component-communication.es",[308,309,310,311],{"tag":229,"color":245},{"tag":250,"color":251},{"tag":37,"color":38},{"tag":312,"color":313},"Básico","#B173BF","dLcA6qwTAutjayKo9BSZ8VD27UMroxba5SkIczwtVII",{"id":316,"title":317,"cover":318,"coverAlt":319,"date":320,"description":321,"draft":11,"extension":12,"locale":13,"meta":322,"navigation":25,"path":327,"schemaOrg":328,"seo":332,"series":207,"seriesDescription":208,"seriesOrder":278,"seriesTitle":209,"slug":33,"stem":333,"tags":334,"__hash__":339},"blog\u002Fblog\u002Fvue-3-composables-extract-reusable-logic.es.md","Composables en Vue 3: cómo extraer lógica reutilizable sin complicarte","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1782172219\u002Fvue-3-composables-extract-reusable-logic.es.md_myyutl.png","Pantalla con código en un entorno de desarrollo","2026-06-23","Aprende qué son los composables en Vue 3, cuándo conviene usarlos y cómo extraer lógica reutilizable con un ejemplo claro usando useToggle.",{"updatedAt":194,"coverCaption":323,"author":16,"keywords":324},"Código reutilizable en Vue 3 por TODOvue",[267,199,43,170,325,326],"useToggle","lógica reutilizable","\u002Fblog\u002Fvue-3-composables-extract-reusable-logic.es",[329],{"headline":317,"author":330,"datePublished":331,"@type":31},{"name":16,"@type":30},"2026-06-22T20:00:00-05:00",{"title":317,"description":321},"blog\u002Fvue-3-composables-extract-reusable-logic.es",[335,336,337,338],{"tag":43,"color":44},{"tag":229,"color":245},{"tag":52,"color":53},{"tag":312,"color":313},"fUGaAtyXtTvA6HVDF8xZfMxwmMsfGc4zmxB1UCsyhQs",{"id":341,"title":342,"cover":343,"coverAlt":344,"date":345,"description":346,"draft":11,"extension":12,"locale":13,"meta":347,"navigation":25,"path":355,"schemaOrg":356,"seo":359,"series":360,"seriesDescription":361,"seriesOrder":362,"seriesTitle":363,"slug":33,"stem":364,"tags":365,"__hash__":373},"blog\u002Fblog\u002Fvue-lifecycle-ssr-serverprefetch.es.md","Ciclos de vida en Vue: renderizado del lado del servidor (serverPrefetch)","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1774051488\u002Fvue-lifecycle-ssr-serverprefetch_averlr.png","Ilustración de un servidor entregando HTML con datos ya resueltos, mientras un cliente hidrata sin necesidad de fetch adicional.","2026-03-21","Cómo usar serverPrefetch y onServerPrefetch para cargar datos antes del render SSR, evitar HTML incompleto y coordinar el primer render del servidor con la hidratación del cliente.",{"updatedAt":348,"readingTime":349,"coverCaption":350,"author":16,"keywords":351},"2026-03-20T20:00:00-05:00",8,"Con `serverPrefetch`, el servidor puede entregar HTML ya completo, mejorando la experiencia y el SEO desde el primer render.",[267,352,353,40,354],"serverPrefetch","onServerPrefetch","hidratación","\u002Fblog\u002Fvue-lifecycle-ssr-serverprefetch.es",[357],{"headline":342,"author":358,"datePublished":348,"@type":31},{"name":16,"@type":30},{"title":342,"description":346},"vue-lifecycle-hooks","Serie práctica para dominar cada hook del ciclo de vida de Vue, desde los básicos hasta los avanzados.",9,"Ciclos de vida en Vue","blog\u002Fvue-lifecycle-ssr-serverprefetch.es",[366,369,370,371,372],{"tag":367,"color":368},"Ciclo de Vida","#FF6B6B",{"tag":40,"color":41},{"tag":200,"color":214},{"tag":229,"color":245},{"tag":84,"color":85},"gpVQi88PJ9GPzNJNjmGEweIYhWKcd-KIwq-VxiZMkTQ",{"id":375,"title":376,"cover":377,"coverAlt":378,"date":379,"description":380,"draft":11,"extension":12,"locale":13,"meta":381,"navigation":25,"path":389,"schemaOrg":390,"seo":393,"series":360,"seriesDescription":361,"seriesOrder":349,"seriesTitle":363,"slug":33,"stem":394,"tags":395,"__hash__":405},"blog\u002Fblog\u002Fvue-lifecycle-render-debug-rendertracked-rendertriggered.es.md","Ciclos de vida en Vue: depuración del render (renderTracked, renderTriggered)","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1773802976\u002Fvue-lifecycle-render-debug-rendertracked-rendertriggered_ekkgg1.png","Ilustración de depuración del render en Vue con renderTracked y renderTriggered","2026-03-18","Cómo usar renderTracked, renderTriggered, onRenderTracked y onRenderTriggered para entender qué dependencias entran en un render y qué cambios están forzando nuevas actualizaciones.",{"updatedAt":382,"coverCaption":383,"author":16,"keywords":384},"2026-03-17T22:00:00-05:00","renderTracked y renderTriggered ayudan a ver qué dependencia entra al render y cuál lo vuelve a disparar.",[267,385,386,387,388],"renderTracked","renderTriggered","onRenderTracked","onRenderTriggered","\u002Fblog\u002Fvue-lifecycle-render-debug-rendertracked-rendertriggered.es",[391],{"headline":376,"author":392,"datePublished":382,"@type":31},{"name":16,"@type":30},{"title":376,"description":380},"blog\u002Fvue-lifecycle-render-debug-rendertracked-rendertriggered.es",[396,397,400,403,404],{"tag":367,"color":368},{"tag":398,"color":399},"Depuración","#C44569",{"tag":401,"color":402},"Renderizado","#E17055",{"tag":46,"color":47},{"tag":84,"color":85},"5mr-vMalD_jw1VlwSiz5cmZRVM9obP8ZlRFNu2rgR88",{"id":407,"title":408,"cover":409,"coverAlt":410,"date":411,"description":412,"draft":11,"extension":12,"locale":13,"meta":413,"navigation":25,"path":421,"schemaOrg":422,"seo":425,"series":360,"seriesDescription":361,"seriesOrder":426,"seriesTitle":363,"slug":33,"stem":427,"tags":428,"__hash__":435},"blog\u002Fblog\u002Fvue-lifecycle-error-handling-errorcaptured.es.md","Ciclos de vida en Vue: manejo de errores con errorCaptured","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1773714502\u002Fvue-lifecycle-error-handling-errorcaptured_mn62y7.png","Ilustración de un componente de Vue con un escudo de protección, simbolizando el manejo de errores con errorCaptured.","2026-03-17","Cómo usar errorCaptured y onErrorCaptured para aislar fallos en componentes hijos, mostrar estados de respaldo y registrar errores sin romper toda la interfaz.",{"updatedAt":414,"coverCaption":415,"author":16,"keywords":416},"2026-03-16T22:00:00-05:00","Con errorCaptured, puedes proteger partes específicas de tu UI sin comprometer toda la experiencia.",[267,417,418,419,420],"errorCaptured","onErrorCaptured","manejo de errores","error boundaries","\u002Fblog\u002Fvue-lifecycle-error-handling-errorcaptured.es",[423],{"headline":408,"author":424,"datePublished":414,"@type":31},{"name":16,"@type":30},{"title":408,"description":412},7,"blog\u002Fvue-lifecycle-error-handling-errorcaptured.es",[429,430,433,434],{"tag":367,"color":368},{"tag":431,"color":432},"Manejo de Errores","#E55039",{"tag":229,"color":245},{"tag":84,"color":85},"epm2rTVpqLV5pyIW1xBngTSC9yZ0Hdu43YNcWNkm4xw",{"id":437,"title":438,"cover":439,"coverAlt":440,"date":441,"description":442,"draft":11,"extension":12,"locale":13,"meta":443,"navigation":25,"path":451,"schemaOrg":452,"seo":455,"series":360,"seriesDescription":361,"seriesOrder":118,"seriesTitle":363,"slug":33,"stem":456,"tags":457,"__hash__":463},"blog\u002Fblog\u002Fvue-lifecycle-keepalive-activated-deactivated.es.md","Ciclos de vida en Vue: componentes cacheados con \u003CKeepAlive> (activated, deactivated)","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1773371011\u002Fvue-lifecycle-keepalive-activated-deactivated_abjmwe.png","Ilustración de componentes cacheados con KeepAlive en Vue usando activated y deactivated","2026-03-13","Cómo funcionan activated y deactivated en componentes cacheados con \u003CKeepAlive>, cuándo usarlos y cómo evitar datos obsoletos, timers activos y lógica mal ubicada.",{"updatedAt":444,"coverCaption":445,"author":16,"keywords":446},"2026-03-12T23:00:00-05:00","KeepAlive permite desactivar y reactivar componentes sin destruir su estado local",[267,447,448,449,450],"KeepAlive","activated","deactivated","cache de componentes","\u002Fblog\u002Fvue-lifecycle-keepalive-activated-deactivated.es",[453],{"headline":438,"author":454,"datePublished":444,"@type":31},{"name":16,"@type":30},{"title":438,"description":442},"blog\u002Fvue-lifecycle-keepalive-activated-deactivated.es",[458,459,461,462],{"tag":367,"color":368},{"tag":447,"color":460},"#27AE60",{"tag":229,"color":245},{"tag":84,"color":85},"LTJL6v4mw6lt5Nb8vhKocgwmO5u1q1TkDLjAgpE1abw",{"id":465,"title":466,"cover":467,"coverAlt":468,"date":469,"description":470,"draft":11,"extension":12,"locale":13,"meta":471,"navigation":25,"path":479,"schemaOrg":480,"seo":483,"series":360,"seriesDescription":361,"seriesOrder":484,"seriesTitle":363,"slug":33,"stem":485,"tags":486,"__hash__":490},"blog\u002Fblog\u002Fvue-lifecycle-unmounting-phase-beforeunmount-unmounted.es.md","Ciclos de vida en Vue: fase de desmontaje (beforeUnmount, unmounted)","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1773284773\u002Fvue-lifecycle-unmounting-phase-beforeunmount-unmounted_f9gqy0.png","Ilustración de la fase de desmontaje del ciclo de vida de Vue con beforeUnmount y unmounted","2026-03-12","Qué ocurre cuando un componente sale de pantalla y cómo usar beforeUnmount y unmounted para limpiar listeners, timers y efectos sin dejar fugas ni comportamientos extraños.",{"updatedAt":472,"coverCaption":473,"author":16,"keywords":474},"2026-03-11T22:00:00-05:00","La fase de desmontaje ocurre cuando Vue retira un componente del árbol activo",[267,475,476,477,478],"beforeUnmount","unmounted","onBeforeUnmount","cleanup","\u002Fblog\u002Fvue-lifecycle-unmounting-phase-beforeunmount-unmounted.es",[481],{"headline":466,"author":482,"datePublished":472,"@type":31},{"name":16,"@type":30},{"title":466,"description":470},5,"blog\u002Fvue-lifecycle-unmounting-phase-beforeunmount-unmounted.es",[487,488,489],{"tag":367,"color":368},{"tag":229,"color":245},{"tag":312,"color":313},"smji8WZsDewTRrh-7nuJ-1afgxZeubOV6QESqNZQknk",{"id":492,"title":493,"cover":494,"coverAlt":495,"date":496,"description":497,"draft":11,"extension":12,"locale":13,"meta":498,"navigation":25,"path":506,"schemaOrg":507,"seo":510,"series":360,"seriesDescription":361,"seriesOrder":147,"seriesTitle":363,"slug":33,"stem":511,"tags":512,"__hash__":518},"blog\u002Fblog\u002Fvue-lifecycle-update-phase-beforeupdate-updated.es.md","Ciclos de vida en Vue: fase de actualización (beforeUpdate, updated)","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1773284616\u002Fvue-lifecycle-update-phase-beforeupdate-updated_qql7os.png","Ilustración de la fase de actualización del ciclo de vida de Vue con beforeUpdate y updated","2026-03-11","Qué ocurre cuando Vue vuelve a renderizar un componente y cómo usar beforeUpdate y updated sin convertirlos en sustitutos de watch o computed.",{"updatedAt":499,"coverCaption":500,"author":16,"keywords":501},"2026-03-10T22:00:00-05:00","La fase de actualización ocurre cuando un cambio reactivo obliga a Vue a volver a renderizar el componente.",[267,502,503,504,505],"beforeUpdate","updated","onUpdated","renderizado","\u002Fblog\u002Fvue-lifecycle-update-phase-beforeupdate-updated.es",[508],{"headline":493,"author":509,"datePublished":499,"@type":31},{"name":16,"@type":30},{"title":493,"description":497},"blog\u002Fvue-lifecycle-update-phase-beforeupdate-updated.es",[513,514,515,516,517],{"tag":367,"color":368},{"tag":229,"color":245},{"tag":401,"color":402},{"tag":46,"color":47},{"tag":312,"color":313},"98z2JKjTHZwuUniJlvBcSw0oAKPwayH9G9A608P_wSQ",{"id":520,"title":521,"cover":522,"coverAlt":523,"date":524,"description":525,"draft":11,"extension":12,"locale":13,"meta":526,"navigation":25,"path":534,"schemaOrg":535,"seo":538,"series":360,"seriesDescription":361,"seriesOrder":278,"seriesTitle":363,"slug":33,"stem":539,"tags":540,"__hash__":545},"blog\u002Fblog\u002Fvue-lifecycle-mounting-phase-beforemount-mounted.es.md","Ciclos de vida en Vue: fase de montaje (beforeMount, mounted)","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1773284431\u002Fvue-lifecycle-mounting-phase-beforemount-mounted_wkrzal.png","Ilustración del ciclo de vida de un componente Vue enfocada en la fase de montaje del DOM","2026-03-10","Qué ocurre justo antes y justo después de que Vue inserte un componente en el DOM, y cómo usar beforeMount y mounted sin meter lógica donde no corresponde.",{"updatedAt":527,"coverCaption":528,"author":16,"keywords":529},"2026-03-09T22:00:00-05:00","La fase de montaje es el momento en el que Vue crea e inserta el DOM del componente en la página.",[267,530,531,532,533],"beforeMount","mounted","onMounted","DOM","\u002Fblog\u002Fvue-lifecycle-mounting-phase-beforemount-mounted.es",[536],{"headline":521,"author":537,"datePublished":527,"@type":31},{"name":16,"@type":30},{"title":521,"description":525},"blog\u002Fvue-lifecycle-mounting-phase-beforemount-mounted.es",[541,542,543,544],{"tag":367,"color":368},{"tag":229,"color":245},{"tag":401,"color":402},{"tag":312,"color":313},"GQ-lIt1QfPL-Vw50b8qQ3uquMQjxzjBexBGH1U_jPMM",{"id":547,"title":548,"cover":549,"coverAlt":550,"date":551,"description":552,"draft":11,"extension":12,"locale":13,"meta":553,"navigation":25,"path":560,"schemaOrg":561,"seo":564,"series":360,"seriesDescription":361,"seriesOrder":176,"seriesTitle":363,"slug":33,"stem":565,"tags":566,"__hash__":571},"blog\u002Fblog\u002Fvue-lifecycle-creation-phase-beforecreate-created-setup.es.md","Ciclos de vida en Vue: fase de creación (beforeCreate, created, setup)","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1773284254\u002Fvue-lifecycle-creation-phase-beforecreate-created-setup_fkkyiw.png","Ilustración de un ciclo de vida de un componente Vue, destacando la fase de creación con beforeCreate, created y setup","2026-03-07","Qué pasa realmente en la fase de creación de un componente Vue y cómo decidir entre beforeCreate, created y setup.",{"updatedAt":554,"coverCaption":555,"author":16,"keywords":556},"2026-03-06T20:00:00-05:00","En esta imagen se muestra el ciclo de vida de un componente Vue, con énfasis en la fase de creación donde se ejecutan los hooks beforeCreate, created y setup.",[267,557,558,559,170],"beforeCreate","created","setup","\u002Fblog\u002Fvue-lifecycle-creation-phase-beforecreate-created-setup.es",[562],{"headline":548,"author":563,"datePublished":554,"@type":31},{"name":16,"@type":30},{"title":548,"description":552},"blog\u002Fvue-lifecycle-creation-phase-beforecreate-created-setup.es",[567,568,569,570],{"tag":367,"color":368},{"tag":229,"color":245},{"tag":46,"color":47},{"tag":312,"color":313},"gD0R9mljoBWBraFYutY3GdOI6IFtdYK-ul1RE0pCfVo",{"id":573,"title":574,"cover":575,"coverAlt":574,"date":576,"description":577,"draft":11,"extension":12,"locale":13,"meta":578,"navigation":25,"path":585,"schemaOrg":586,"seo":589,"series":360,"seriesDescription":361,"seriesOrder":241,"seriesTitle":363,"slug":33,"stem":590,"tags":591,"__hash__":596},"blog\u002Fblog\u002Fvue-lifecycle-hooks-overview.es.md","Ciclos de vida en Vue: Una visión general","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1772676391\u002Fvue-lifecycle-hooks-overview_ovnxzy.png","2026-03-05","Un mapa claro de todos los ciclos de vida de Vue 3 para entender cuándo usar cada hook.",{"updatedAt":579,"readingTime":349,"coverCaption":580,"author":16,"keywords":581},"2026-03-04T21:30:00-05:00","Panorama de los hooks del ciclo de vida en Vue 3.",[267,582,170,583,584],"Ciclos de vida","Options API","Hooks","\u002Fblog\u002Fvue-lifecycle-hooks-overview.es",[587],{"headline":574,"author":588,"datePublished":579,"@type":31},{"name":16,"@type":30},{"title":574,"description":577},"blog\u002Fvue-lifecycle-hooks-overview.es",[592,593,594,595],{"tag":367,"color":368},{"tag":229,"color":245},{"tag":46,"color":47},{"tag":312,"color":313},"SBKJnT6tEFXx0FslfjbqCoy_-zKjHKGzNv961L2uqmc",{"id":598,"title":599,"cover":600,"coverAlt":599,"date":601,"description":602,"draft":11,"extension":12,"locale":13,"meta":603,"navigation":25,"path":609,"schemaOrg":610,"seo":614,"series":116,"seriesDescription":117,"seriesOrder":484,"seriesTitle":119,"slug":33,"stem":615,"tags":616,"__hash__":621},"blog\u002Fblog\u002Fvue-3-reactivity-internals.es.md","Cómo funciona internamente el sistema de reactividad en Vue 3","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1772497884\u002Fvue-3-reactivity-internals_hhru1s.png","2026-03-03","Disección técnica del motor reactivo de Vue 3: dependency tracking, estructura WeakMap->Map->Set, activeEffect, scheduler, batching y errores reales de arquitectura.",{"updatedAt":264,"coverCaption":604,"author":16,"keywords":605},"Portada temporal: reemplazar por arte final de TODOvue",[199,271,606,607,608,268],"dependency tracking","scheduler","batching","\u002Fblog\u002Fvue-3-reactivity-internals.es",[611],{"headline":599,"author":612,"datePublished":613,"@type":31},{"name":16,"@type":30},"2026-03-02T20:00:00-05:00",{"title":599,"description":602},"blog\u002Fvue-3-reactivity-internals.es",[617,618,619,620],{"tag":46,"color":47},{"tag":200,"color":214},{"tag":87,"color":88},{"tag":84,"color":85},"hSP4l_wcWdf1tErUej5yTDbc2Tt0ZF4eiL1QPmqxGm4",{"id":623,"title":624,"cover":625,"coverAlt":626,"date":627,"description":628,"draft":11,"extension":12,"locale":13,"meta":629,"navigation":25,"path":635,"schemaOrg":636,"seo":640,"series":641,"seriesDescription":642,"seriesOrder":643,"seriesTitle":644,"slug":33,"stem":645,"tags":646,"__hash__":656},"blog\u002Fblog\u002Fdirectives-vue-custom-directives-guide.es.md","Directivas en Vue: Directivas personalizadas","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1772207944\u002Fdirectives-vue-custom-directives-guide_nwp7od.png","Ejemplo de directiva personalizada en Vue 3","2026-02-27","Aprende a crear directivas personalizadas en Vue 3 con casos reales, ciclo de vida, limpieza correcta y ejemplos equivalentes en Composition API y Options API.",{"updatedAt":630,"coverCaption":626,"author":16,"keywords":631},"2026-02-27T12:30:00-05:00",[267,632,633,634,170,583],"directivas personalizadas","custom directives","ciclo de vida","\u002Fblog\u002Fdirectives-vue-custom-directives-guide.es",[637],{"headline":638,"author":639,"datePublished":630,"@type":31},"Directivas personalizadas en Vue 3",{"name":16,"@type":30},{"title":624,"description":628},"vue-directives","Ruta paso a paso para dominar las directivas principales de Vue.",11,"Directivas en Vue","blog\u002Fdirectives-vue-custom-directives-guide.es",[647,650,653,654,655],{"tag":648,"color":649},"Directivas","#6C5CE7",{"tag":651,"color":652},"Directivas Personalizadas","#7D5FFF",{"tag":200,"color":214},{"tag":46,"color":47},{"tag":84,"color":85},"wVpr_e--WXOvyGkAScAp5eWTfVDbzY9Te6sVUdj96GA",{"id":658,"title":659,"cover":660,"coverAlt":661,"date":662,"description":663,"draft":11,"extension":12,"locale":13,"meta":664,"navigation":25,"path":670,"schemaOrg":671,"seo":675,"series":641,"seriesDescription":642,"seriesOrder":676,"seriesTitle":644,"slug":33,"stem":677,"tags":678,"__hash__":685},"blog\u002Fblog\u002Fdirectives-vue-v-cloak-guide.es.md","Directivas en Vue: v-cloak","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1771976009\u002Fdirectives-vue-v-cloak-guide_vhkz2i.png","Portada temporal para el artículo sobre v-cloak en Vue","2026-02-25","Aprende a usar v-cloak en Vue 3 para evitar el parpadeo de plantillas sin compilar, con Composition API y Options API, casos reales, errores comunes y buenas prácticas.",{"updatedAt":665,"coverCaption":604,"author":16,"keywords":666},"2026-02-25T12:30:00-05:00",[267,667,668,669,170,583],"v-cloak","FOUC","hydration","\u002Fblog\u002Fdirectives-vue-v-cloak-guide.es",[672],{"headline":673,"author":674,"datePublished":665,"@type":31},"Directiva v-cloak en Vue: evita parpadeos antes del montaje",{"name":16,"@type":30},{"title":659,"description":663},10,"blog\u002Fdirectives-vue-v-cloak-guide.es",[679,680,683,684],{"tag":648,"color":649},{"tag":681,"color":682},"Templates","#00B894",{"tag":401,"color":402},{"tag":312,"color":313},"JfS7unY1XQ1HsdW8oWBHbTqDpzHjl2-9BrnPQZr3SRE",{"id":687,"title":688,"cover":689,"coverAlt":690,"date":691,"description":692,"draft":11,"extension":12,"locale":13,"meta":693,"navigation":25,"path":700,"schemaOrg":701,"seo":705,"series":641,"seriesDescription":642,"seriesOrder":362,"seriesTitle":644,"slug":33,"stem":706,"tags":707,"__hash__":713},"blog\u002Fblog\u002Fdirectives-vue-v-once-v-memo-v-pre-guide.es.md","Directivas en Vue: v-once \u002F v-memo \u002F v-pre","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1771897190\u002Fdirectives-vue-v-once-v-memo-v-pre-guide_ljsdlv.png","Imagen temporal para portada del artículo sobre v-once, v-memo y v-pre en Vue","2026-02-24","Aprende cuándo usar v-once, v-memo y v-pre en Vue 3 para optimizar renderizado, evitar trabajo innecesario y mantener componentes claros.",{"updatedAt":694,"coverCaption":604,"author":16,"keywords":695},"2026-02-23T21:00:00-05:00",[267,696,697,698,699],"v-once","v-memo","v-pre","optimización render","\u002Fblog\u002Fdirectives-vue-v-once-v-memo-v-pre-guide.es",[702],{"headline":703,"author":704,"datePublished":694,"@type":31},"Directivas en Vue: v-once, v-memo y v-pre para renderizado eficiente",{"name":16,"@type":30},{"title":688,"description":692},"blog\u002Fdirectives-vue-v-once-v-memo-v-pre-guide.es",[708,709,710,711,712],{"tag":648,"color":649},{"tag":87,"color":88},{"tag":401,"color":402},{"tag":46,"color":47},{"tag":84,"color":85},"ltUtJZ-ViSqRogEpVIS3x2XdEz345biUTyEg7SJpXLo",{"id":715,"title":716,"cover":717,"coverAlt":718,"date":719,"description":720,"draft":11,"extension":12,"locale":33,"meta":721,"navigation":25,"path":728,"schemaOrg":729,"seo":732,"series":641,"seriesDescription":642,"seriesOrder":349,"seriesTitle":644,"slug":33,"stem":733,"tags":734,"__hash__":739},"blog\u002Fblog\u002Fdirectives-vue-v-text-v-html-guide.es.md","Directivas en Vue: v-text y v-html","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1771635700\u002Fdirectives-vue-v-text-v-html-guide_n0cemz.png","Ejemplo de uso de v-text y v-html en Vue.js","2026-02-21","Aprende cuándo usar v-text y v-html en Vue, diferencias clave, riesgos de seguridad, errores comunes y patrones recomendados con ejemplos en Composition API y Options API.",{"updatedAt":722,"coverCaption":723,"keywords":724},"2026-02-20T20:00:00-05:00","Aprende a usar v-text y v-html de forma segura y efectiva en tus proyectos Vue",[267,725,726,727,505,170,583],"v-text","v-html","XSS","\u002Fblog\u002Fdirectives-vue-v-text-v-html-guide.es",[730],{"headline":716,"author":731,"datePublished":722,"@type":31},{"name":16,"@type":30},{"title":716,"description":720},"blog\u002Fdirectives-vue-v-text-v-html-guide.es",[735,736,737,738],{"tag":648,"color":649},{"tag":681,"color":682},{"tag":401,"color":402},{"tag":312,"color":313},"nRl4DrJhzsMVrCXStftR_-Go1SJK8NAAhi0uuGqgmkI",{"id":741,"title":742,"cover":743,"coverAlt":744,"date":745,"description":746,"draft":11,"extension":12,"locale":13,"meta":747,"navigation":25,"path":755,"schemaOrg":756,"seo":760,"series":641,"seriesDescription":642,"seriesOrder":426,"seriesTitle":644,"slug":33,"stem":761,"tags":762,"__hash__":767},"blog\u002Fblog\u002Fdirectives-vue-v-slot-guide.es.md","Directivas en Vue: v-slot","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1771508914\u002Fdirectives-vue-v-slot-guide_wr2iyy.png","Portada del artículo Directivas en Vue: v-slot","2026-02-19","Aprende a dominar v-slot en Vue 3: slots por defecto, nombrados y con props (scoped slots), con ejemplos claros en Composition API y Options API.",{"updatedAt":748,"coverCaption":749,"author":16,"keywords":750},"2026-02-19T08:00:00-05:00","Usa v-slot para construir componentes más flexibles y reutilizables.",[267,751,752,753,754,170,583],"v-slot","slots","scoped slots","componentes reutilizables","\u002Fblog\u002Fdirectives-vue-v-slot-guide.es",[757],{"headline":758,"author":759,"datePublished":748,"@type":31},"Directivas en Vue: v-slot con ejemplos claros y prácticos",{"name":16,"@type":30},{"title":742,"description":746},"blog\u002Fdirectives-vue-v-slot-guide.es",[763,764,765,766],{"tag":648,"color":649},{"tag":253,"color":254},{"tag":229,"color":245},{"tag":84,"color":85},"DxshI1c7MLWMpiJg_QZh4QLABHouxeRnejywUpaJAOU",{"id":769,"title":770,"cover":771,"coverAlt":772,"date":773,"description":774,"draft":11,"extension":12,"locale":13,"meta":775,"navigation":25,"path":781,"schemaOrg":782,"seo":786,"series":641,"seriesDescription":642,"seriesOrder":118,"seriesTitle":644,"slug":33,"stem":787,"tags":788,"__hash__":795},"blog\u002Fblog\u002Fdirectives-vue-v-model-guide.es.md","Directivas en Vue: v-model","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1771265788\u002Fdirectives-vue-v-model-guide_ticgya.png","Imagen temporal para portada del artículo sobre v-model en Vue","2026-02-16","Aprende a usar v-model en Vue 3 para formularios y componentes personalizados, con Composition API y Options API, casos reales, errores comunes y buenas practicas.",{"updatedAt":776,"coverCaption":604,"author":16,"keywords":777},"2026-02-16T13:30:00-05:00",[267,778,779,780,170,583],"v-model","formularios","two-way binding","\u002Fblog\u002Fdirectives-vue-v-model-guide.es",[783],{"headline":784,"author":785,"datePublished":776,"@type":31},"Directiva v-model en Vue: guía completa para formularios y componentes",{"name":16,"@type":30},{"title":770,"description":774},"blog\u002Fdirectives-vue-v-model-guide.es",[789,790,793,794],{"tag":648,"color":649},{"tag":791,"color":792},"Formularios","#E67E22",{"tag":46,"color":47},{"tag":312,"color":313},"O_hXXsF2G3Nazt5a_Ggj8OT6_GTMtHDuGhVbwudOzcU",{"id":797,"title":798,"cover":799,"coverAlt":800,"date":801,"description":802,"draft":11,"extension":12,"locale":13,"meta":803,"navigation":25,"path":809,"schemaOrg":810,"seo":814,"series":641,"seriesDescription":642,"seriesOrder":484,"seriesTitle":644,"slug":33,"stem":815,"tags":816,"__hash__":820},"blog\u002Fblog\u002Fdirectives-vue-v-on-guide.es.md","Directivas en Vue: v-on","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1771022043\u002Fdirectives-vue-v-on-guide_hwtqel.png","Imagen temporal para portada del articulo sobre v-on en Vue","2026-02-13","Aprende a usar v-on en Vue con eventos del DOM, modificadores, atajos de teclado y buenas practicas para mantener componentes claros y mantenibles.",{"updatedAt":804,"coverCaption":604,"author":16,"keywords":805},"2026-02-13T10:30:00-05:00",[267,806,807,808,170,583],"v-on","eventos","event modifiers","\u002Fblog\u002Fdirectives-vue-v-on-guide.es",[811],{"headline":812,"author":813,"datePublished":804,"@type":31},"Directiva v-on en Vue: guia practica para manejar eventos",{"name":16,"@type":30},{"title":798,"description":802},"blog\u002Fdirectives-vue-v-on-guide.es",[817,818,819],{"tag":648,"color":649},{"tag":250,"color":251},{"tag":312,"color":313},"WAEXmV8fTD0ITkOvmyn62Tdvu5vw7wpMPNxDrqfLAt4",{"id":822,"title":823,"cover":824,"coverAlt":825,"date":826,"description":827,"draft":11,"extension":12,"locale":13,"meta":828,"navigation":25,"path":835,"schemaOrg":836,"seo":840,"series":641,"seriesDescription":642,"seriesOrder":147,"seriesTitle":644,"slug":33,"stem":841,"tags":842,"__hash__":847},"blog\u002Fblog\u002Fdirectives-vue-v-bind-guide.es.md","Directivas en Vue: v-bind","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1770849828\u002Fdirectives-vue-v-bind-guide_gqrgyj.png","Imagen temporal para portada del artículo sobre v-bind en Vue","2026-02-11","Aprende a usar v-bind en Vue desde lo más básico hasta patrones avanzados: atributos dinámicos, class\u002Fstyle reactivos, props en componentes y errores comunes.",{"updatedAt":829,"coverCaption":604,"author":16,"keywords":830},"2026-02-11T18:00:00-05:00",[267,831,832,833,834,170,583],"v-bind","atributos dinámicos","class binding","style binding","\u002Fblog\u002Fdirectives-vue-v-bind-guide.es",[837],{"headline":838,"author":839,"datePublished":829,"@type":31},"Directiva v-bind en Vue: guía de básico a avanzado",{"name":16,"@type":30},{"title":823,"description":827},"blog\u002Fdirectives-vue-v-bind-guide.es",[843,844,845,846],{"tag":648,"color":649},{"tag":681,"color":682},{"tag":46,"color":47},{"tag":312,"color":313},"ggicPee9rp0vgescxGeL26jTmua2py715WKhjmXHpp0",{"id":849,"title":850,"cover":851,"coverAlt":852,"date":853,"description":854,"draft":11,"extension":12,"locale":13,"meta":855,"navigation":25,"path":861,"schemaOrg":862,"seo":866,"series":641,"seriesDescription":642,"seriesOrder":278,"seriesTitle":644,"slug":33,"stem":867,"tags":868,"__hash__":874},"blog\u002Fblog\u002Fdirectives-vue-v-for-guide.es.md","Directivas en Vue: v-for","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1770690176\u002Fdirectives-vue-v-for-guide_itbdds.png","Imagen temporal para portada del artículo sobre v-for en Vue","2026-02-10","Aprende a dominar v-for en Vue con ejemplos prácticos desde lo más básico hasta patrones avanzados, uso correcto de key, errores comunes y buenas prácticas en Composition API y Options API.",{"updatedAt":856,"coverCaption":604,"author":16,"keywords":857},"2026-02-09T21:30:00-05:00",[267,858,859,860,170,583,505],"v-for","listas","key","\u002Fblog\u002Fdirectives-vue-v-for-guide.es",[863],{"headline":864,"author":865,"datePublished":856,"@type":31},"Directiva v-for en Vue: guía completa de básico a avanzado",{"name":16,"@type":30},{"title":850,"description":854},"blog\u002Fdirectives-vue-v-for-guide.es",[869,870,872,873],{"tag":648,"color":649},{"tag":871,"color":47},"Listas",{"tag":681,"color":682},{"tag":312,"color":313},"h_Z-6C71ir_sIzxviVE8eEY3vMd8ZVXbADx8GTll9U8",{"id":876,"title":877,"cover":878,"coverAlt":879,"date":880,"description":881,"draft":11,"extension":12,"locale":13,"meta":882,"navigation":25,"path":891,"schemaOrg":892,"seo":896,"series":641,"seriesDescription":642,"seriesOrder":176,"seriesTitle":644,"slug":33,"stem":897,"tags":898,"__hash__":905},"blog\u002Fblog\u002Fdirectives-vue-v-if-v-else-v-show-guide.es.md","Directivas en Vue: v-if, v-else y v-show","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1771265982\u002Fdirectives-vue-v-if-v-else-v-show-guide_qmtjik.png","Ilustración conceptual del renderizado condicional en Vue.js","2026-02-05","Aprende a usar v-if, v-else y v-show en Vue con ejemplos claros, buenas prácticas y notas clave para elegir correctamente entre renderizado condicional y visibilidad.",{"updatedAt":883,"coverCaption":884,"author":16,"keywords":885},"2026-02-05T12:30:00-05:00","Renderizado condicional en Vue.js ilustrado por TODOvue",[267,886,887,888,889,890,170,583],"v-if","v-else","v-show","conditional rendering","directives","\u002Fblog\u002Fdirectives-vue-v-if-v-else-v-show-guide.es",[893],{"headline":894,"author":895,"datePublished":883,"@type":31},"v-if, v-else y v-show en Vue: cuándo usar cada uno",{"name":16,"@type":30},{"title":877,"description":881},"blog\u002Fdirectives-vue-v-if-v-else-v-show-guide.es",[899,900,903,904],{"tag":648,"color":649},{"tag":901,"color":902},"Renderizado Condicional","#E056FD",{"tag":681,"color":682},{"tag":312,"color":313},"b5lwqC2_R5GDZNjdpBMFknx2dcvVk_FQOPGFJOy4LmQ",{"id":907,"title":908,"cover":909,"coverAlt":908,"date":910,"description":911,"draft":11,"extension":12,"locale":13,"meta":912,"navigation":25,"path":916,"schemaOrg":917,"seo":921,"series":641,"seriesDescription":642,"seriesOrder":241,"seriesTitle":644,"slug":33,"stem":922,"tags":923,"__hash__":930},"blog\u002Fblog\u002Fvue-directives-overview.es.md","Directivas en Vue: Una Visión General","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1770161262\u002Fvue-directives-overview_qyrngz.png","2026-02-04","Explora las directivas esenciales de Vue.js, su sintaxis y casos de uso comunes.",{"updatedAt":748,"readingTime":118,"coverCaption":913,"author":16,"keywords":914},"Imagen destacada que representa las directivas en Vue.js.",[267,648,915,52],"Desarrollo Frontend","\u002Fblog\u002Fvue-directives-overview.es",[918],{"headline":908,"author":919,"datePublished":920,"@type":31},{"name":16,"@type":30},"2026-02-03T20:00:00-05:00",{"title":908,"description":911},"blog\u002Fvue-directives-overview.es",[924,925,926,927,928,929],{"tag":648,"color":649},{"tag":681,"color":682},{"tag":901,"color":902},{"tag":871,"color":47},{"tag":46,"color":47},{"tag":312,"color":313},"JwLOQaBKN45DaJoFg7X918rNjFPTm8MZd7iOm0BuH68",{"id":932,"title":933,"cover":934,"coverAlt":933,"date":935,"description":936,"draft":11,"extension":12,"locale":13,"meta":937,"navigation":25,"path":943,"schemaOrg":944,"seo":948,"series":207,"seriesDescription":208,"seriesOrder":484,"seriesTitle":209,"slug":33,"stem":949,"tags":950,"__hash__":958},"blog\u002Fblog\u002Fmastering-renderless-components-vue-3.es.md","Patrones Avanzados en Vue 3: El Poder de los Renderless Components","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1769789805\u002Fmastering-renderless-components-vue-3_f5mqbs.png","2026-01-30","Explora cómo los Renderless Components en Vue 3 pueden mejorar la reutilización de código y la separación de lógica y presentación en tus aplicaciones.",{"updatedAt":194,"coverCaption":938,"author":16,"keywords":939},"Imagen destacada que representa el concepto de Renderless Components en Vue 3.",[199,940,941,942,915],"Renderless Components","Reutilización de Código","Patrones de Diseño","\u002Fblog\u002Fmastering-renderless-components-vue-3.es",[945],{"headline":933,"author":946,"datePublished":947,"@type":31},{"name":16,"@type":30},"2026-01-30T17:00:00-05:00",{"title":933,"description":936},"blog\u002Fmastering-renderless-components-vue-3.es",[951,952,954,955,956,957],{"tag":200,"color":214},{"tag":942,"color":953},"#9C27B0",{"tag":229,"color":245},{"tag":46,"color":47},{"tag":84,"color":85},{"tag":52,"color":53},"-earh1fov0s8QNrnVX2RteTSesXEwXENosxo9pj6k9w",{"id":960,"title":961,"cover":962,"coverAlt":961,"date":963,"description":964,"draft":11,"extension":12,"locale":13,"meta":965,"navigation":25,"path":971,"schemaOrg":972,"seo":976,"series":207,"seriesDescription":208,"seriesOrder":147,"seriesTitle":209,"slug":33,"stem":977,"tags":978,"__hash__":987},"blog\u002Fblog\u002Fvue-provide-inject-avoid-prop-drilling.es.md","Provide e Inject en Vue 3: Guía definitiva para eliminar el Prop Drilling","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1769126104\u002Fvue-provide-inject-avoid-prop-drilling_pkd9s1.png","2026-01-23","Aprende a usar provide e inject en Vue.js para eliminar el Prop Drilling, gestionar la reactividad de forma segura con readonly y mejorar la arquitectura de tus componentes.",{"updatedAt":194,"coverCaption":966,"author":16,"keywords":967},"Provide e Inject en Vue 3 por TODOvue",[267,968,969,970,170,271],"Provide","Inject","Prop Drilling","\u002Fblog\u002Fvue-provide-inject-avoid-prop-drilling.es",[973],{"headline":961,"author":974,"datePublished":975,"@type":31},{"name":16,"@type":30},"2026-01-22T23:30:00-05:00",{"title":961,"description":964},"blog\u002Fvue-provide-inject-avoid-prop-drilling.es",[979,982,983,984,985,986],{"tag":980,"color":981},"Inyección de Dependencias","#2E86DE",{"tag":49,"color":50},{"tag":200,"color":214},{"tag":942,"color":953},{"tag":229,"color":245},{"tag":52,"color":53},"CBAqb072PTyDEOYcOpi9rvDl3rIQYoWB3nPWEjCk12M",{"id":989,"title":990,"cover":991,"coverAlt":992,"date":993,"description":994,"draft":11,"extension":12,"locale":13,"meta":995,"navigation":25,"path":1001,"schemaOrg":1002,"seo":1006,"series":116,"seriesDescription":117,"seriesOrder":241,"seriesTitle":119,"slug":33,"stem":1007,"tags":1008,"__hash__":1014},"blog\u002Fblog\u002Fvue-reactivity-explained.es.md","¿Qué es la reactividad? La magia detrás de Vue.js explicada con claridad","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1767664201\u002Fmagical_vue_coding_laboratory_p1incq.jpg","Ilustración de un laboratorio de codificación mágica de Vue.js","2026-01-06","Explora el sistema de reactividad de Vue.js, desde analogías simples hasta su implementación técnica con Proxies, y aprende a optimizar tus aplicaciones.",{"updatedAt":264,"coverCaption":996,"author":16,"keywords":997},"Ilustración de un laboratorio de codificación mágica de Vue.js por TODOvue",[267,46,998,170,999,1000],"Proxies","ref","reactive","\u002Fblog\u002Fvue-reactivity-explained.es",[1003],{"headline":990,"author":1004,"datePublished":1005,"@type":31},{"name":16,"@type":30},"2026-01-05T22:00:00-05:00",{"title":990,"description":994},"blog\u002Fvue-reactivity-explained.es",[1009,1010,1011],{"tag":46,"color":47},{"tag":312,"color":313},{"tag":1012,"color":1013},"Historia","#F27E68","UT2z0_WltHsFRpzRs-XkCaBzok7q9HIAWFb_2lDXzwk",{"id":1016,"title":1017,"cover":1018,"coverAlt":1019,"date":1020,"description":1021,"draft":11,"extension":12,"locale":13,"meta":1022,"navigation":25,"path":1026,"schemaOrg":1027,"seo":1031,"series":33,"seriesDescription":33,"seriesOrder":33,"seriesTitle":33,"slug":33,"stem":1032,"tags":1033,"__hash__":1041},"blog\u002Fblog\u002Fvue-beta-vapor-mode-revealed.es.md","Vue 3.6 Beta: La Revolución de Vapor Mode y el Nuevo Motor de Reactividad","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1766870280\u002Fvue-beta-vapor-mode-revealed_snvcqg.png","Logo de Vue.js sobre un fondo de código fuente","2025-12-27","Explora las novedades de Vue 3.6 Beta, incluyendo Vapor Mode y la integración de alien-signals para una reactividad más eficiente.",{"updatedAt":1023,"coverCaption":1024,"author":16,"keywords":1025},"2026-02-11T00:00:00-05:00","Descubre las innovaciones de Vue 3.6 Beta: Vapor Mode y un motor de reactividad renovado","vue 3.6, vapor mode, alien-signals, reactividad, javascript, framework, frontend, beta","\u002Fblog\u002Fvue-beta-vapor-mode-revealed.es",[1028],{"headline":1017,"author":1029,"datePublished":1030,"@type":31},{"name":16,"@type":30},"2025-12-27T00:00:00-05",{"title":1017,"description":1021},"blog\u002Fvue-beta-vapor-mode-revealed.es",[1034,1037,1038,1039,1040],{"tag":1035,"color":1036},"Beta","#42B883",{"tag":81,"color":82},{"tag":46,"color":47},{"tag":90,"color":91},{"tag":84,"color":85},"OoT1wXBWbx7Nm_VxKBcOVEX_68taHaHv5lb5JWYp_3Q",{"id":1043,"title":1044,"cover":1045,"coverAlt":1046,"date":1047,"description":1048,"draft":11,"extension":12,"locale":13,"meta":1049,"navigation":25,"path":1051,"schemaOrg":1052,"seo":1056,"series":33,"seriesDescription":33,"seriesOrder":33,"seriesTitle":33,"slug":33,"stem":1057,"tags":1058,"__hash__":1064},"blog\u002Fblog\u002Fsetting-up-vue-with-vite.es.md","¿Cómo crear tu primer proyecto con Vue usando Vite?","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1766607505\u002Fsetting_up_vue_with_vite_crikmp.png","Logo de Vue.js con el logo de Vite de fondo","2025-12-24","Una guía paso a paso para configurar un entorno de desarrollo moderno con Vue.js y Vite.",{"updatedAt":1023,"coverCaption":1050},"Configura tu entorno de desarrollo con Vue y Vite en minutos","\u002Fblog\u002Fsetting-up-vue-with-vite.es",[1053],{"headline":1044,"author":1054,"datePublished":1055,"@type":31},{"name":16,"@type":30},"2025-12-24T00:00:00-05",{"title":1044,"description":1048},"blog\u002Fsetting-up-vue-with-vite.es",[1059,1062,1063],{"tag":1060,"color":1061},"Vite","#646CFF",{"tag":90,"color":91},{"tag":312,"color":313},"ID3RcMYIQmxPmT53eZ4R0DE5wAx-pz-SvPR2vkFFjRc",{"id":1066,"title":1067,"cover":1068,"coverAlt":1069,"date":1070,"description":1071,"draft":11,"extension":12,"locale":13,"meta":1072,"navigation":25,"path":1074,"schemaOrg":1075,"seo":1079,"series":33,"seriesDescription":33,"seriesOrder":33,"seriesTitle":33,"slug":33,"stem":1080,"tags":1081,"__hash__":1084},"blog\u002Fblog\u002Fhistory-evolution-philosophy-vue-progressive-framework.es.md","Historia y Evolución de Vue.js: El Framework Progresivo","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1766105778\u002Fhistoria_de_vue_wbwv72.png","Logo de Vue.js con fondo de código fuente","2025-12-19","Desde sus inicios como un proyecto paralelo en Google hasta convertirse en uno de los pilares del desarrollo web moderno, exploramos la evolución y filosofía de Vue.js.",{"updatedAt":1023,"coverCaption":1073},"Explorando la evolución de Vue.js desde sus inicios hasta la actualidad","\u002Fblog\u002Fhistory-evolution-philosophy-vue-progressive-framework.es",[1076],{"headline":1067,"author":1077,"datePublished":1078,"@type":31},{"name":16,"@type":30},"2025-12-19T00:00:00-05",{"title":1067,"description":1071},"blog\u002Fhistory-evolution-philosophy-vue-progressive-framework.es",[1082,1083],{"tag":1012,"color":1013},{"tag":90,"color":91},"rJyCA4jjvQiJ_sw3YqFOoiddKcMhFEHJpq4Aw3J5Uzg",{"id":1086,"title":1087,"cover":1088,"coverAlt":1019,"date":1089,"description":1090,"draft":11,"extension":12,"locale":13,"meta":1091,"navigation":25,"path":1094,"schemaOrg":1095,"seo":1099,"series":33,"seriesDescription":33,"seriesOrder":33,"seriesTitle":33,"slug":33,"stem":1100,"tags":1101,"__hash__":1105},"blog\u002Fblog\u002Fwhat-is-vue-js-and-why-you-should-use-it.es.md","¿Qué es Vue.js y por qué deberías usarlo?","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1766098457\u002FQue_es_Vue_y_por_que_deberias_usarlo_tmowoz.png","2025-12-18","Descubre Vue.js, un framework progresivo de JavaScript, y aprende por qué es una excelente opción para desarrollar aplicaciones web modernas y reactivas.",{"updatedAt":1023,"coverCaption":1092,"author":16,"keywords":1093},"Explorando Vue.js: El framework progresivo para la web moderna","vue.js, javascript, framework, frontend, spa, reactividad, composition api, vue 3","\u002Fblog\u002Fwhat-is-vue-js-and-why-you-should-use-it.es",[1096],{"headline":1087,"author":1097,"datePublished":1098,"@type":31},{"name":16,"@type":30},"2025-12-18T00:00:00-05",{"title":1087,"description":1090},"blog\u002Fwhat-is-vue-js-and-why-you-should-use-it.es",[1102,1103,1104],{"tag":90,"color":91},{"tag":312,"color":313},{"tag":1012,"color":1013},"3oUGsbaCuwOgI_KyRJd-09Ixe2vRBkwOj4YxwJT8Nks",{"id":1107,"title":1108,"cover":1109,"coverAlt":1110,"date":1111,"description":1112,"draft":11,"extension":12,"locale":13,"meta":1113,"navigation":25,"path":1115,"schemaOrg":1116,"seo":1120,"series":33,"seriesDescription":33,"seriesOrder":33,"seriesTitle":33,"slug":33,"stem":1121,"tags":1122,"__hash__":1128},"blog\u002Fblog\u002Fwelcome-to-todovue.es.md","TODOvue: Un espacio dedicado al ecosistema de Vue.js","https:\u002F\u002Fres.cloudinary.com\u002Fdenj4fg7f\u002Fimage\u002Fupload\u002Fv1766098456\u002FTODOvue_idegxt.png","Logo de TODOvue con código fuente de fondo","2025-12-17","Bienvenidos a TODOvue. Un blog técnico diseñado por y para desarrolladores, donde exploramos a fondo Vue 3, Nuxt y la arquitectura de componentes moderna.",{"updatedAt":1023,"coverCaption":1114},"Explorando el universo de Vue.js de principio a fin","\u002Fblog\u002Fwelcome-to-todovue.es",[1117],{"headline":1108,"author":1118,"datePublished":1119,"@type":31},{"name":16,"@type":30},"2025-12-17T00:00:00-05:00",{"title":1108,"description":1112},"blog\u002Fwelcome-to-todovue.es",[1123,1124,1127],{"tag":16,"color":1036},{"tag":1125,"color":1126},"Offtopic","#605AD1",{"tag":90,"color":91},"QCC1KEhGX4J18VW5hhPy_dY_G47DK7o6kElWExWVHwg",{"id":1130,"title":1131,"body":1132,"cover":58,"coverAlt":2006,"date":60,"description":2007,"draft":11,"extension":12,"lab":2008,"locale":2018,"meta":2019,"navigation":25,"path":2027,"schemaOrg":2028,"seo":2031,"series":33,"seriesDescription":33,"seriesOrder":33,"seriesTitle":33,"slug":33,"stem":2032,"tags":2033,"__hash__":2040},"blog\u002Fblog\u002Fvue-3-6-rc-vapor-mode-status-limits-evaluation-2026.en.md","Vue 3.6 RC and Vapor Mode: Current Status, Limits, and How to Evaluate It in 2026",{"type":1133,"value":1134,"toc":1995},"minimark",[1135,1139,1143,1178,1181,1186,1195,1198,1202,1220,1233,1250,1268,1272,1275,1292,1295,1298,1302,1317,1334,1347,1351,1363,1419,1422,1436,1439,1443,1455,1458,1700,1706,1709,1765,1806,1816,1820,1930,1938,1942,1951,1954,1971,1978,1981,1985,1988,1991],[1136,1137,1131],"h1",{"id":1138},"vue-36-rc-and-vapor-mode-current-status-limits-and-how-to-evaluate-it-in-2026",[1140,1141,1142],"p",{},"Evaluating Vapor Mode is not a matter of asking whether a new compiler is faster in the abstract. The actual decision is whether its supported subset, available integrations, and a measured bottleneck justify introducing a prerelease into your context.",[1140,1144,1145,1146,1152,1153,1158,1159,1164,1165,1169,1170,1173,1174,1177],{},"As of August 11, 2026, that decision still required caution: ",[1147,1148,70],"a",{"href":1149,"rel":1150},"https:\u002F\u002Fgithub.com\u002Fvuejs\u002Fcore\u002Freleases\u002Ftag\u002Fv3.6.0-rc.3",[1151],"nofollow"," remained a prerelease, while ",[1147,1154,1157],{"href":1155,"rel":1156},"https:\u002F\u002Fgithub.com\u002Fvuejs\u002Fcore\u002Freleases\u002Ftag\u002Fv3.5.41",[1151],"Vue 3.5.41"," was marked Latest. The ",[1147,1160,1163],{"href":1161,"rel":1162},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fvue?activeTab=versions",[1151],"npm registry tags"," agreed: 3.5.41 under ",[1166,1167,1168],"code",{},"latest",", 3.6.0-rc.3 under ",[1166,1171,1172],{},"rc",", and 3.6.0-beta.17 under ",[1166,1175,1176],{},"beta",". Vue 3.6 was therefore not stable on the research date.",[1140,1179,1180],{},"This post is an independent evaluation of the RC stage. It does not assume complete parity, universal compatibility, or performance gains that transfer to every application.",[1182,1183,1185],"h2",{"id":1184},"current-status-vue-36-is-still-an-rc","Current status: Vue 3.6 is still an RC",[1140,1187,1188,1189,1194],{},"The release channel matters because an RC is intended to stabilize a candidate version, but it can still change before the stable release. The ",[1147,1190,1193],{"href":1191,"rel":1192},"https:\u002F\u002Fgithub.com\u002Fvuejs\u002Fcore\u002Fblob\u002Fv3.6.0-rc.3\u002FCHANGELOG.md",[1151],"changelog included in the rc.3 tag"," records that evolution and should be compared with the newest release before installing or adopting Vue 3.6.",[1140,1196,1197],{},"For a team, this changes the required standard of evidence. An isolated test can accept an RC; a critical application also needs an update policy, verified compatibility, and a clear rollback path if behavior changes. A feature being complete for its intended scope does not automatically make the entire ecosystem stable for that mode.",[1182,1199,1201],{"id":1200},"from-the-early-betas-to-the-rc-what-actually-changed","From the early betas to the RC: what actually changed",[1140,1203,1204,1205,1209,1210,1215,1216,1219],{},"Vue 3.6.0-beta.1 announced that Vapor's intended feature set was complete and used the phrase ",[1206,1207,1208],"em",{},"feature parity",". However, the ",[1147,1211,1214],{"href":1212,"rel":1213},"https:\u002F\u002Fgithub.com\u002Fvuejs\u002Fcore\u002Fblob\u002Fv3.6.0-rc.3\u002FCHANGELOG.md#360-beta1-2025-12-23",[1151],"official timeline preserved in rc.3"," already listed exclusions, including ",[1166,1217,1218],{},"Suspense"," in pure Vapor applications and several unsupported APIs.",[1140,1221,1222,1223,1225,1226,1228,1229,1232],{},"The RC notes use a more precise description: Vapor is feature-complete for a subset of APIs and provides mostly equivalent behavior within that subset. Between the betas and RCs, hydration, slots, async components, ",[1166,1224,447],{},", transitions, and interoperability with VDOM regions using ",[1166,1227,1218],{}," or ",[1166,1230,1231],{},"Teleport"," were added or corrected. This is substantial compatibility and stabilization work, but it does not establish universal equivalence.",[1140,1234,1235,1236,1241,1242,1245,1246,1249],{},"RC.2 also changed event handling. According to its ",[1147,1237,1240],{"href":1238,"rel":1239},"https:\u002F\u002Fgithub.com\u002Fvuejs\u002Fcore\u002Fblob\u002Fv3.6.0-rc.3\u002FCHANGELOG.md#breaking-changes",[1151],"breaking-changes section",", listeners now attach directly to elements by default; document delegation became opt-in through ",[1166,1243,1244],{},".delegate"," for supported static events. A general section of the same document still contains an older explanation of automatic delegation, but the versioned RC.2 change is the applicable reference. Do not use ",[1166,1247,1248],{},"compilerOptions.eventDelegation",": that option was removed in RC.2.",[1140,1251,1252,1253,1258,1259,1261,1262,1264,1265,1267],{},"RC.3 added another round of compiler and Vapor runtime fixes. Its ",[1147,1254,1257],{"href":1255,"rel":1256},"https:\u002F\u002Fgithub.com\u002Fvuejs\u002Fcore\u002Fblob\u002Fv3.6.0-rc.3\u002FCHANGELOG.md#360-rc3-2026-08-11",[1151],"exact changelog"," includes work on ",[1166,1260,778],{},", custom directives, ",[1166,1263,447],{},", ",[1166,1266,1231],{},", asynchronous hydration, and VDOM slot interoperability. An RC published that same day still correcting these boundaries reinforces the need to pin versions and evaluate your own case.",[1182,1269,1271],{"id":1270},"what-vapor-mode-is-what-it-removes-and-what-it-does-not-promise","What Vapor Mode is, what it removes, and what it does not promise",[1140,1273,1274],{},"Vapor is an opt-in compilation mode for Single-File Components. For its supported subset, the compiler connects reactive dependencies to targeted DOM updates without creating VNodes for every update. That is the model change: it bypasses the usual path of constructing and comparing virtual trees in that region.",[1140,1276,1277,1278,1281,1282,1287,1288,1291],{},"A fully Vapor application can start with ",[1166,1279,1280],{},"createVaporApp()"," and, according to the ",[1147,1283,1286],{"href":1284,"rel":1285},"https:\u002F\u002Fgithub.com\u002Fvuejs\u002Fcore\u002Freleases\u002Ftag\u002Fv3.6.0-rc.1",[1151],"official rc.1 release notes",", omit the Virtual DOM runtime. That statement stops being global when interoperability is involved. ",[1166,1289,1290],{},"vaporInteropPlugin"," makes it possible to combine Vapor and VDOM components, but it brings that runtime back and reduces the potential baseline-size benefit.",[1140,1293,1294],{},"The VDOM also remains when a project uses JSX or render functions: those components continue to produce VNodes and need interoperability inside a Vapor application. Describing Vapor as “Vue without a Virtual DOM” is therefore accurate only for a fully Vapor application or region operating within the supported set.",[1140,1296,1297],{},"The notes do not promise that every library will work, that memory use will fall by a fixed percentage, or that every screen will improve. The distinction is valuable only when the removed work mattered in the measured case.",[1182,1299,1301],{"id":1300},"vapor-mode-is-not-the-reactivity-system-overhaul","Vapor Mode is not the reactivity-system overhaul",[1140,1303,1304,1305,1310,1311,1316],{},"Two development tracks are often conflated. Tracking based on version counting and doubly linked lists arrived in Vue 3.5, as documented by the ",[1147,1306,1309],{"href":1307,"rel":1308},"https:\u002F\u002Fblog.vuejs.org\u002Fposts\u002Fvue-3-5",[1151],"Vue 3.5 announcement"," and the ",[1147,1312,1315],{"href":1313,"rel":1314},"https:\u002F\u002Fgithub.com\u002Fvuejs\u002Fcore\u002Fblob\u002Fv3.5.41\u002FCHANGELOG.md",[1151],"changelog preserved in Vue 3.5.41",". It did not originate in Vapor and should not be presented as a Vue 3.6 innovation.",[1140,1318,1319,1320,1323,1324,1327,1328,1333],{},"Vue 3.6 does contain a later ",[1166,1321,1322],{},"@vue\u002Freactivity"," refactor based on ",[1166,1325,1326],{},"alien-signals",", recorded since ",[1147,1329,1332],{"href":1330,"rel":1331},"https:\u002F\u002Fgithub.com\u002Fvuejs\u002Fcore\u002Fblob\u002Fv3.6.0-rc.3\u002FCHANGELOG.md#360-alpha1-2025-07-12",[1151],"Vue 3.6.0-alpha.1",". That work belongs to the general reactive engine. Vapor instead changes how the compiler represents and applies DOM updates. One track organizes dependency tracking and propagation; the other changes the rendering mechanism.",[1140,1335,1336,1337,1341,1342,1346],{},"For more context on the first track, see ",[1147,1338,1340],{"href":1339},"\u002Fblog\u002Fvue-3-reactivity-internals.en\u002F","Vue 3 reactivity internals"," and the guide to ",[1147,1343,1345],{"href":1344},"\u002Fblog\u002Freactive-performance-shallowref-readonly-markraw-unnecessary-updates.en\u002F","reactive boundaries and unnecessary updates",". Keeping the two tracks separate prevents Vapor from receiving credit for results produced by the shared reactive engine.",[1182,1348,1350],{"id":1349},"current-limits-and-adoption-risks","Current limits and adoption risks",[1140,1352,1353,1354,1310,1358,1362],{},"The ",[1147,1355,1357],{"href":1284,"rel":1356},[1151],"Vue 3.6 RC release notes",[1147,1359,1361],{"href":1191,"rel":1360},[1151],"versioned rc.3 changelog"," document limits that should become a project checklist:",[1364,1365,1366,1382,1409,1416],"ul",{},[1367,1368,1369,1370,1373,1374,1377,1378,1381],"li",{},"Options API and ",[1166,1371,1372],{},"app.config.globalProperties"," are unsupported. ",[1166,1375,1376],{},"getCurrentInstance()"," returns ",[1166,1379,1380],{},"null"," inside Vapor components.",[1367,1383,1384,1385,1388,1389,1391,1392,1264,1395,1264,1398,1264,1401,1404,1405,1408],{},"Per-element ",[1166,1386,1387],{},"@vue:xxx"," events, ",[1166,1390,697],{},", and several component-ref public properties such as ",[1166,1393,1394],{},"$el",[1166,1396,1397],{},"$props",[1166,1399,1400],{},"$attrs",[1166,1402,1403],{},"$slots",", and ",[1166,1406,1407],{},"$refs"," are unsupported.",[1367,1410,1411,1412,1415],{},"Calling ",[1166,1413,1414],{},"slots.default()"," to inspect content is not harmless: in Vapor it can render, create DOM and reactive effects, or claim nodes during hydration.",[1367,1417,1418],{},"Custom directives use a different interface with a reactive getter and an optional cleanup function. An existing directive must be reviewed rather than assumed compatible.",[1140,1420,1421],{},"Interoperability covers standard props, events, and slots, but not every edge case. The notes warn about possible friction with VDOM-based libraries and recommend clear boundaries between Vapor and VDOM regions instead of repeatedly alternating them through nested components.",[1140,1423,1424,1425,1430,1431,1435],{},"Vue core includes Vapor hydration implementation and fixes. That is not the same as a declaration of comprehensive Nuxt support. The ",[1147,1426,1429],{"href":1427,"rel":1428},"https:\u002F\u002Fvuejs.org\u002Fguide\u002Fscaling-up\u002Fssr",[1151],"official SSR guide"," defines hydration as attaching the client application to server-rendered HTML and connecting event listeners. Hydration compatibility in core and full support from an SSR framework are therefore separate questions. The internal guide to ",[1147,1432,1434],{"href":1433},"\u002Fblog\u002Fvue-lifecycle-ssr-serverprefetch.en\u002F","lifecycle behavior and SSR"," provides additional context for designing those checks.",[1140,1437,1438],{},"Before adopting Vapor, independently verify Nuxt, Vue DevTools, UI libraries, plugins, JSX, render functions, and project-specific directives. If any are critical and lack confirmed support, waiting is a valid technical decision.",[1182,1440,1442],{"id":1441},"how-to-test-vapor-safely-in-a-small-project","How to test Vapor safely in a small project",[1140,1444,1445,1446,1449,1450,1454],{},"Use a Vue and Vite lab that is separate from a critical application. Pin ",[1166,1447,1448],{},"vue@3.6.0-rc.3",", retain the lockfile, and record the exact Vue plugin version. Pinning versions is a reproducibility strategy, not an API requirement. If you need to prepare the environment, start with a ",[1147,1451,1453],{"href":1452},"\u002Fblog\u002Fsetting-up-vue-with-vite.en\u002F","Vue and Vite setup",".",[1140,1456,1457],{},"For a component-level test, the documented opt-in avoids unnecessary global configuration:",[1459,1460,1468],"pre",{"className":1461,"code":1462,"filename":1463,"highlights":1464,"language":1466,"meta":1467,"style":1467},"language-vue shiki shiki-themes github-light github-dark","\u003Cscript setup vapor lang=\"ts\">\nimport { ref } from 'vue'\n\nconst count = ref(0)\n\nfunction increment() {\n  count.value += 1\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cmain>\n    \u003Ch1>Vapor counter\u003C\u002Fh1>\n    \u003Cbutton type=\"button\" @click=\"increment\">Increment\u003C\u002Fbutton>\n    \u003Cp aria-live=\"polite\">Count: {{ count }}\u003C\u002Fp>\n  \u003C\u002Fmain>\n\u003C\u002Ftemplate>\n","App.vue",[241,147,1465],14,"vue","",[1166,1469,1470,1504,1519,1524,1549,1553,1564,1575,1580,1589,1593,1602,1613,1628,1659,1681,1691],{"__ignoreMap":1467},[1471,1472,1476,1480,1484,1488,1491,1494,1497,1501],"span",{"class":1473,"line":241},[1474,1475],"line","highlight",[1471,1477,1479],{"class":1478},"sVt8B","\u003C",[1471,1481,1483],{"class":1482},"s9eBZ","script",[1471,1485,1487],{"class":1486},"sScJk"," setup",[1471,1489,1490],{"class":1486}," vapor",[1471,1492,1493],{"class":1486}," lang",[1471,1495,1496],{"class":1478},"=",[1471,1498,1500],{"class":1499},"sZZnC","\"ts\"",[1471,1502,1503],{"class":1478},">\n",[1471,1505,1506,1510,1513,1516],{"class":1474,"line":176},[1471,1507,1509],{"class":1508},"szBVR","import",[1471,1511,1512],{"class":1478}," { ref } ",[1471,1514,1515],{"class":1508},"from",[1471,1517,1518],{"class":1499}," 'vue'\n",[1471,1520,1521],{"class":1474,"line":278},[1471,1522,1523],{"emptyLinePlaceholder":25},"\n",[1471,1525,1527,1530,1534,1537,1540,1543,1546],{"class":1526,"line":147},[1474,1475],[1471,1528,1529],{"class":1508},"const",[1471,1531,1533],{"class":1532},"sj4cs"," count",[1471,1535,1536],{"class":1508}," =",[1471,1538,1539],{"class":1486}," ref",[1471,1541,1542],{"class":1478},"(",[1471,1544,1545],{"class":1532},"0",[1471,1547,1548],{"class":1478},")\n",[1471,1550,1551],{"class":1474,"line":484},[1471,1552,1523],{"emptyLinePlaceholder":25},[1471,1554,1555,1558,1561],{"class":1474,"line":118},[1471,1556,1557],{"class":1508},"function",[1471,1559,1560],{"class":1486}," increment",[1471,1562,1563],{"class":1478},"() {\n",[1471,1565,1566,1569,1572],{"class":1474,"line":426},[1471,1567,1568],{"class":1478},"  count.value ",[1471,1570,1571],{"class":1508},"+=",[1471,1573,1574],{"class":1532}," 1\n",[1471,1576,1577],{"class":1474,"line":349},[1471,1578,1579],{"class":1478},"}\n",[1471,1581,1582,1585,1587],{"class":1474,"line":362},[1471,1583,1584],{"class":1478},"\u003C\u002F",[1471,1586,1483],{"class":1482},[1471,1588,1503],{"class":1478},[1471,1590,1591],{"class":1474,"line":676},[1471,1592,1523],{"emptyLinePlaceholder":25},[1471,1594,1595,1597,1600],{"class":1474,"line":643},[1471,1596,1479],{"class":1478},[1471,1598,1599],{"class":1482},"template",[1471,1601,1503],{"class":1478},[1471,1603,1605,1608,1611],{"class":1474,"line":1604},12,[1471,1606,1607],{"class":1478},"  \u003C",[1471,1609,1610],{"class":1482},"main",[1471,1612,1503],{"class":1478},[1471,1614,1616,1619,1621,1624,1626],{"class":1474,"line":1615},13,[1471,1617,1618],{"class":1478},"    \u003C",[1471,1620,1136],{"class":1482},[1471,1622,1623],{"class":1478},">Vapor counter\u003C\u002F",[1471,1625,1136],{"class":1482},[1471,1627,1503],{"class":1478},[1471,1629,1631,1633,1636,1639,1641,1644,1647,1649,1652,1655,1657],{"class":1630,"line":1465},[1474,1475],[1471,1632,1618],{"class":1478},[1471,1634,1635],{"class":1482},"button",[1471,1637,1638],{"class":1486}," type",[1471,1640,1496],{"class":1478},[1471,1642,1643],{"class":1499},"\"button\"",[1471,1645,1646],{"class":1486}," @click",[1471,1648,1496],{"class":1478},[1471,1650,1651],{"class":1499},"\"increment\"",[1471,1653,1654],{"class":1478},">Increment\u003C\u002F",[1471,1656,1635],{"class":1482},[1471,1658,1503],{"class":1478},[1471,1660,1662,1664,1666,1669,1671,1674,1677,1679],{"class":1474,"line":1661},15,[1471,1663,1618],{"class":1478},[1471,1665,1140],{"class":1482},[1471,1667,1668],{"class":1486}," aria-live",[1471,1670,1496],{"class":1478},[1471,1672,1673],{"class":1499},"\"polite\"",[1471,1675,1676],{"class":1478},">Count: {{ count }}\u003C\u002F",[1471,1678,1140],{"class":1482},[1471,1680,1503],{"class":1478},[1471,1682,1684,1687,1689],{"class":1474,"line":1683},16,[1471,1685,1686],{"class":1478},"  \u003C\u002F",[1471,1688,1610],{"class":1482},[1471,1690,1503],{"class":1478},[1471,1692,1694,1696,1698],{"class":1474,"line":1693},17,[1471,1695,1584],{"class":1478},[1471,1697,1599],{"class":1482},[1471,1699,1503],{"class":1478},[1140,1701,1353,1702,1705],{},[1166,1703,1704],{},"vapor"," attribute on the first line selects the compiler for this SFC. State remains in the Composition API, and the semantic button works with a keyboard without introducing an unnecessary ARIA state.",[1140,1707,1708],{},"A fully Vapor lab application starts this way:",[1459,1710,1716],{"className":1711,"code":1712,"filename":1713,"highlights":1714,"language":1715,"meta":1467,"style":1467},"language-ts shiki shiki-themes github-light github-dark","import { createVaporApp } from 'vue'\nimport App from '.\u002FApp.vue'\n\ncreateVaporApp(App).mount('#app')\n","main.ts",[241,147],"ts",[1166,1717,1718,1730,1742,1746],{"__ignoreMap":1467},[1471,1719,1721,1723,1726,1728],{"class":1720,"line":241},[1474,1475],[1471,1722,1509],{"class":1508},[1471,1724,1725],{"class":1478}," { createVaporApp } ",[1471,1727,1515],{"class":1508},[1471,1729,1518],{"class":1499},[1471,1731,1732,1734,1737,1739],{"class":1474,"line":176},[1471,1733,1509],{"class":1508},[1471,1735,1736],{"class":1478}," App ",[1471,1738,1515],{"class":1508},[1471,1740,1741],{"class":1499}," '.\u002FApp.vue'\n",[1471,1743,1744],{"class":1474,"line":278},[1471,1745,1523],{"emptyLinePlaceholder":25},[1471,1747,1749,1752,1755,1758,1760,1763],{"class":1748,"line":147},[1474,1475],[1471,1750,1751],{"class":1486},"createVaporApp",[1471,1753,1754],{"class":1478},"(App).",[1471,1756,1757],{"class":1486},"mount",[1471,1759,1542],{"class":1478},[1471,1761,1762],{"class":1499},"'#app'",[1471,1764,1548],{"class":1478},[1140,1766,1767,1768,1770,1771,1228,1774,1777,1778,1781,1782,1785,1786,1789,1790,1795,1796,1801,1802,1805],{},"The documented forms also allow ",[1166,1769,1704],{}," on ",[1166,1772,1773],{},"\u003Cscript>",[1166,1775,1776],{},"\u003Ctemplate>","; they do not require a ",[1166,1779,1780],{},".vapor.vue"," extension. ",[1166,1783,1784],{},"@vitejs\u002Fplugin-vue"," 6.0.8 added ",[1166,1787,1788],{},"features.vapor"," to force compilation globally in compatible Vue 3.6+ SFCs, according to its ",[1147,1791,1794],{"href":1792,"rel":1793},"https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fvite-plugin-vue\u002Fblob\u002Fplugin-vue%406.0.8\u002Fpackages\u002Fplugin-vue\u002FCHANGELOG.md#608-2026-07-14",[1151],"version changelog"," and ",[1147,1797,1800],{"href":1798,"rel":1799},"https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fvite-plugin-vue\u002Fpull\u002F766",[1151],"official PR",". This lab does not need that option. The example above was compiled as a production build and executed in Edge with Vue 3.6.0-rc.3, plugin-vue 6.0.8, and Vite 7.3.3; mounting and the ",[1166,1803,1804],{},"Count: 0 → Count: 1"," interaction passed. This verifies the minimal example, not Nuxt or third-party dependency compatibility.",[1140,1807,1808,1809,1811,1812,1815],{},"For the A\u002FB baseline, keep exactly the same component, remove only the ",[1166,1810,1704],{}," opt-in, and start the standard variant with ",[1166,1813,1814],{},"createApp()",". Keep data, markup, and interactions identical. Do not add interoperability to the first experiment: measuring a pure Vapor application and measuring a mixed application answer different questions.",[1182,1817,1819],{"id":1818},"decision-matrix-standard-experiment-or-wait","Decision matrix: standard, experiment, or wait",[1821,1822,1823,1842],"table",{},[1824,1825,1826],"thead",{},[1827,1828,1829,1833,1836,1839],"tr",{},[1830,1831,1832],"th",{},"Criterion",[1830,1834,1835],{},"Standard compiler",[1830,1837,1838],{},"Vapor experiment",[1830,1840,1841],{},"Wait",[1843,1844,1845,1860,1874,1888,1902,1916],"tbody",{},[1827,1846,1847,1851,1854,1857],{},[1848,1849,1850],"td",{},"Production",[1848,1852,1853],{},"Stable reference on Vue 3.5.41",[1848,1855,1856],{},"Only with accepted risk and isolated scope",[1848,1858,1859],{},"When Vue 3.6 stable is required",[1827,1861,1862,1865,1868,1871],{},[1848,1863,1864],{},"SSR and hydration",[1848,1866,1867],{},"Preferable for already-supported Nuxt or SSR",[1848,1869,1870],{},"Only with documented integration and focused tests",[1848,1872,1873],{},"When framework support is unconfirmed",[1827,1875,1876,1879,1882,1885],{},[1848,1877,1878],{},"Ecosystem",[1848,1880,1881],{},"Broadest current compatibility",[1848,1883,1884],{},"Audited dependencies and a clear VDOM boundary",[1848,1886,1887],{},"Critical libraries remain unverified",[1827,1889,1890,1893,1896,1899],{},[1848,1891,1892],{},"Debugging",[1848,1894,1895],{},"Team's established workflow",[1848,1897,1898],{},"Tools checked against the exact RC",[1848,1900,1901],{},"DevTools or profiling support is unclear",[1827,1903,1904,1907,1910,1913],{},[1848,1905,1906],{},"Team",[1848,1908,1909],{},"Suitable for normal operations",[1848,1911,1912],{},"Team can maintain a prerelease and roll back",[1848,1914,1915],{},"No time is available to investigate changes",[1827,1917,1918,1921,1924,1927],{},[1848,1919,1920],{},"Measurements",[1848,1922,1923],{},"No bottleneck attributable to rendering",[1848,1925,1926],{},"A hypothesis and reproducible A\u002FB case exist",[1848,1928,1929],{},"Evidence consists only of generic benchmarks",[1140,1931,1932,1933,1937],{},"The matrix does not turn any choice into a universal rule. During the RC, the ",[1147,1934,1936],{"href":1284,"rel":1935},[1151],"official notes"," limit their recommendation to partial experiments on performance-sensitive pages or small new applications that are fully Vapor. This is not a general recommendation to migrate production systems.",[1182,1939,1941],{"id":1940},"how-to-measure-before-adopting","How to measure before adopting",[1140,1943,1944,1945,1950],{},"Vue's ",[1147,1946,1949],{"href":1947,"rel":1948},"https:\u002F\u002Fvuejs.org\u002Fguide\u002Fbest-practices\u002Fperformance",[1151],"performance guide"," separates page-load performance from update performance. Measure both because Vapor can affect different costs, and a favorable result in one does not guarantee the other.",[1140,1952,1953],{},"Keep versions, data, components, routes, production build, minification, browser, device, cache state, and interaction sequence constant. Record multiple runs and their variability. At minimum, observe:",[1364,1955,1956,1959,1962,1965,1968],{},[1367,1957,1958],{},"actual chunk and transferred-resource sizes;",[1367,1960,1961],{},"LCP and INP in representative scenarios;",[1367,1963,1964],{},"long tasks and update profiles;",[1367,1966,1967],{},"the duration and work of the interaction that motivated the test;",[1367,1969,1970],{},"for SSR, server HTML, mismatch warnings, DOM preservation, hydration, and the first interaction.",[1140,1972,1973,1974,1977],{},"Vue recommends PageSpeed Insights or WebPageTest for production loading and Chrome Performance for local profiles. ",[1166,1975,1976],{},"app.config.performance"," and Vue DevTools are also part of the general toolkit, but their behavior with the tested Vapor version must be confirmed. Bundle size must be measured from the real build because imports, tree-shaking, and interoperability affect it.",[1140,1979,1980],{},"Do not publish a percentage copied from a generic benchmark. A defensible result includes source code, versions, hardware, browser, data, repetitions, and reproducible results. A memory measurement is also local to the scenario; it is not a Vapor promise.",[1182,1982,1984],{"id":1983},"a-practical-rule-for-2026","A practical rule for 2026",[1140,1986,1987],{},"Keep the standard compiler when you need stability and broad compatibility. Experiment with Vapor when a measured problem exists, you can isolate the boundary, and the team accepts an RC. Wait when the project depends on unsupported APIs or integrations that have not been verified.",[1140,1989,1990],{},"Vapor Mode materially changes how Vue can update the DOM, but the decision should not rely on adjectives or somebody else's benchmark. Compare the same case, record its conditions, and check Vue's release channel again before adoption.",[1992,1993,1994],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1467,"searchDepth":176,"depth":176,"links":1996},[1997,1998,1999,2000,2001,2002,2003,2004,2005],{"id":1184,"depth":176,"text":1185},{"id":1200,"depth":176,"text":1201},{"id":1270,"depth":176,"text":1271},{"id":1300,"depth":176,"text":1301},{"id":1349,"depth":176,"text":1350},{"id":1441,"depth":176,"text":1442},{"id":1818,"depth":176,"text":1819},{"id":1940,"depth":176,"text":1941},{"id":1983,"depth":176,"text":1984},"Technical comparison between Vue's standard compiler and Vapor Mode during the Vue 3.6 RC stage.","Explore Vue 3.6 RC and Vapor Mode, their current limits and risks, and how to evaluate adoption through reproducible testing.",{"title":2009,"goal":2010,"tasks":2011,"starterCode":2016,"solutionHint":2017},"Compare the standard compiler and Vapor","Create two equivalent counter variants and prepare a reproducible A\u002FB comparison without changing their data, markup, or interactions.",[2012,2013,2014,2015],"Keep this component as the standard-compiler baseline.","Create a second variant and enable Vapor only through the documented attribute on \u003Cscript setup>.","Run both variants with the same production build, browser, device, and interaction sequence.","Record the actual build size and an update profile without turning the local result into a general conclusion.","\u003Cscript setup lang=\"ts\">\nimport { ref } from 'vue'\n\nconst count = ref(0)\n\nfunction increment() {\n  count.value += 1\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cmain>\n    \u003Ch1>Vapor counter\u003C\u002Fh1>\n    \u003Cbutton type=\"button\" @click=\"increment\">Increment\u003C\u002Fbutton>\n    \u003Cp aria-live=\"polite\">Count: {{ count }}\u003C\u002Fp>\n  \u003C\u002Fmain>\n\u003C\u002Ftemplate>\n","The Vapor variant should only add vapor to \u003Cscript setup>; do not change the state, template, or interaction. For a fully Vapor application, review the createVaporApp() example afterward.","en",{"updatedAt":63,"author":16,"coverCaption":2020,"keywords":2021},"Current status, limits, and practical evaluation of Vapor Mode during the Vue 3.6 RC stage.",[2022,2023,2024,2025,70,2026],"Vue 3.6 RC and Vapor Mode","Vapor Mode status","Vapor Mode limitations","evaluate Vapor Mode","Vue performance","\u002Fblog\u002Fvue-3-6-rc-vapor-mode-status-limits-evaluation-2026.en",[2029],{"headline":1131,"author":2030,"datePublished":76,"@type":31},{"name":16,"@type":30},{"title":1131,"description":2007},"blog\u002Fvue-3-6-rc-vapor-mode-status-limits-evaluation-2026.en",[2034,2035,2037,2039],{"tag":81,"color":82},{"tag":2036,"color":85},"Advanced",{"tag":2038,"color":88},"Performance",{"tag":1878,"color":91},"IxlA17-jtmaJWpQ5piNyR9Bnq6k6meM_ezkvSQUC8_E",[2042,2056,2068,2079,2090,2104,2117,2131,2143,2155,2167,2180,2193,2205,2217,2228,2241,2253,2265,2277,2289,2302,2314,2327,2339,2351,2363,2374,2386,2398,2410,2424,2438,2452,2463,2475,2485,2494,2504],{"id":5,"title":6,"cover":7,"coverAlt":8,"date":9,"description":10,"draft":11,"extension":12,"locale":13,"meta":2043,"navigation":25,"path":26,"schemaOrg":2045,"seo":2048,"series":33,"seriesDescription":33,"seriesOrder":33,"seriesTitle":33,"slug":33,"stem":34,"tags":2049,"__hash__":54},{"updatedAt":15,"author":16,"coverCaption":17,"keywords":2044},[19,20,21,22,23,24],[2046],{"headline":6,"author":2047,"datePublished":15,"@type":31},{"name":16,"@type":30},{"title":6,"description":10},[2050,2051,2052,2053,2054,2055],{"tag":37,"color":38},{"tag":40,"color":41},{"tag":43,"color":44},{"tag":46,"color":47},{"tag":49,"color":50},{"tag":52,"color":53},{"id":56,"title":57,"cover":58,"coverAlt":59,"date":60,"description":61,"draft":11,"extension":12,"locale":13,"meta":2057,"navigation":25,"path":72,"schemaOrg":2059,"seo":2062,"series":33,"seriesDescription":33,"seriesOrder":33,"seriesTitle":33,"slug":33,"stem":78,"tags":2063,"__hash__":92},{"updatedAt":63,"author":16,"coverCaption":64,"keywords":2058},[66,67,68,69,70,71],[2060],{"headline":57,"author":2061,"datePublished":76,"@type":31},{"name":16,"@type":30},{"title":57,"description":61},[2064,2065,2066,2067],{"tag":81,"color":82},{"tag":84,"color":85},{"tag":87,"color":88},{"tag":90,"color":91},{"id":94,"title":95,"cover":96,"coverAlt":97,"date":98,"description":99,"draft":11,"extension":12,"locale":13,"meta":2069,"navigation":25,"path":111,"schemaOrg":2071,"seo":2074,"series":116,"seriesDescription":117,"seriesOrder":118,"seriesTitle":119,"slug":33,"stem":120,"tags":2075,"__hash__":125},{"updatedAt":101,"author":16,"coverCaption":102,"keywords":2070},[104,105,106,107,108,109,110],[2072],{"headline":95,"author":2073,"datePublished":101,"@type":31},{"name":16,"@type":30},{"title":95,"description":99},[2076,2077,2078],{"tag":46,"color":47},{"tag":87,"color":88},{"tag":52,"color":53},{"id":127,"title":128,"cover":129,"coverAlt":130,"date":131,"description":132,"draft":11,"extension":12,"locale":13,"meta":2080,"navigation":25,"path":142,"schemaOrg":2082,"seo":2085,"series":116,"seriesDescription":117,"seriesOrder":147,"seriesTitle":119,"slug":33,"stem":148,"tags":2086,"__hash__":153},{"updatedAt":134,"author":16,"coverCaption":135,"keywords":2081},[137,138,139,140,141],[2083],{"headline":128,"author":2084,"datePublished":134,"@type":31},{"name":16,"@type":30},{"title":128,"description":132},[2087,2088,2089],{"tag":46,"color":47},{"tag":43,"color":44},{"tag":37,"color":38},{"id":155,"title":156,"cover":157,"coverAlt":158,"date":159,"description":160,"draft":11,"extension":12,"locale":13,"meta":2091,"navigation":25,"path":171,"schemaOrg":2093,"seo":2096,"series":116,"seriesDescription":117,"seriesOrder":176,"seriesTitle":119,"slug":33,"stem":177,"tags":2097,"__hash__":185},{"updatedAt":162,"author":16,"coverCaption":163,"keywords":2092},[165,166,167,168,169,170],[2094],{"headline":156,"author":2095,"datePublished":162,"@type":31},{"name":16,"@type":30},{"title":156,"description":160},[2098,2099,2100,2101,2102,2103],{"tag":46,"color":47},{"tag":49,"color":50},{"tag":37,"color":38},{"tag":43,"color":44},{"tag":40,"color":41},{"tag":52,"color":53},{"id":187,"title":188,"cover":189,"coverAlt":190,"date":191,"description":192,"draft":11,"extension":12,"locale":13,"meta":2105,"navigation":25,"path":201,"schemaOrg":2107,"seo":2110,"series":207,"seriesDescription":208,"seriesOrder":118,"seriesTitle":209,"slug":33,"stem":210,"tags":2111,"__hash__":218},{"updatedAt":194,"author":16,"coverCaption":195,"keywords":2106},[197,198,199,49,200,43],[2108],{"headline":188,"author":2109,"datePublished":205,"@type":31},{"name":16,"@type":30},{"title":188,"description":192},[2112,2113,2114,2115,2116],{"tag":49,"color":50},{"tag":200,"color":214},{"tag":52,"color":53},{"tag":43,"color":44},{"tag":40,"color":41},{"id":220,"title":221,"cover":222,"coverAlt":223,"date":224,"description":225,"draft":11,"extension":12,"locale":13,"meta":2118,"navigation":25,"path":235,"schemaOrg":2120,"seo":2123,"series":207,"seriesDescription":208,"seriesOrder":241,"seriesTitle":209,"slug":33,"stem":242,"tags":2124,"__hash__":255},{"updatedAt":194,"author":16,"coverCaption":227,"keywords":2119},[229,230,231,232,233,234],[2121],{"headline":221,"author":2122,"datePublished":239,"@type":31},{"name":16,"@type":30},{"title":221,"description":225},[2125,2126,2127,2128,2129,2130],{"tag":229,"color":245},{"tag":200,"color":214},{"tag":52,"color":53},{"tag":43,"color":44},{"tag":250,"color":251},{"tag":253,"color":254},{"id":257,"title":258,"cover":259,"coverAlt":260,"date":261,"description":262,"draft":11,"extension":12,"locale":13,"meta":2132,"navigation":25,"path":272,"schemaOrg":2134,"seo":2137,"series":116,"seriesDescription":117,"seriesOrder":278,"seriesTitle":119,"slug":33,"stem":279,"tags":2138,"__hash__":285},{"updatedAt":264,"coverCaption":265,"author":16,"keywords":2133},[267,199,268,269,270,271,170],[2135],{"headline":258,"author":2136,"datePublished":276,"@type":31},{"name":16,"@type":30},{"title":258,"description":262},[2139,2140,2141,2142],{"tag":46,"color":47},{"tag":52,"color":53},{"tag":87,"color":88},{"tag":37,"color":38},{"id":287,"title":288,"cover":289,"coverAlt":288,"date":290,"description":291,"draft":11,"extension":12,"locale":13,"meta":2144,"navigation":25,"path":300,"schemaOrg":2146,"seo":2149,"series":207,"seriesDescription":208,"seriesOrder":176,"seriesTitle":209,"slug":33,"stem":306,"tags":2150,"__hash__":314},{"updatedAt":194,"coverCaption":293,"author":16,"keywords":2145},[267,199,295,296,297,298,299],[2147],{"headline":288,"author":2148,"datePublished":304,"@type":31},{"name":16,"@type":30},{"title":288,"description":291},[2151,2152,2153,2154],{"tag":229,"color":245},{"tag":250,"color":251},{"tag":37,"color":38},{"tag":312,"color":313},{"id":316,"title":317,"cover":318,"coverAlt":319,"date":320,"description":321,"draft":11,"extension":12,"locale":13,"meta":2156,"navigation":25,"path":327,"schemaOrg":2158,"seo":2161,"series":207,"seriesDescription":208,"seriesOrder":278,"seriesTitle":209,"slug":33,"stem":333,"tags":2162,"__hash__":339},{"updatedAt":194,"coverCaption":323,"author":16,"keywords":2157},[267,199,43,170,325,326],[2159],{"headline":317,"author":2160,"datePublished":331,"@type":31},{"name":16,"@type":30},{"title":317,"description":321},[2163,2164,2165,2166],{"tag":43,"color":44},{"tag":229,"color":245},{"tag":52,"color":53},{"tag":312,"color":313},{"id":341,"title":342,"cover":343,"coverAlt":344,"date":345,"description":346,"draft":11,"extension":12,"locale":13,"meta":2168,"navigation":25,"path":355,"schemaOrg":2170,"seo":2173,"series":360,"seriesDescription":361,"seriesOrder":362,"seriesTitle":363,"slug":33,"stem":364,"tags":2174,"__hash__":373},{"updatedAt":348,"readingTime":349,"coverCaption":350,"author":16,"keywords":2169},[267,352,353,40,354],[2171],{"headline":342,"author":2172,"datePublished":348,"@type":31},{"name":16,"@type":30},{"title":342,"description":346},[2175,2176,2177,2178,2179],{"tag":367,"color":368},{"tag":40,"color":41},{"tag":200,"color":214},{"tag":229,"color":245},{"tag":84,"color":85},{"id":375,"title":376,"cover":377,"coverAlt":378,"date":379,"description":380,"draft":11,"extension":12,"locale":13,"meta":2181,"navigation":25,"path":389,"schemaOrg":2183,"seo":2186,"series":360,"seriesDescription":361,"seriesOrder":349,"seriesTitle":363,"slug":33,"stem":394,"tags":2187,"__hash__":405},{"updatedAt":382,"coverCaption":383,"author":16,"keywords":2182},[267,385,386,387,388],[2184],{"headline":376,"author":2185,"datePublished":382,"@type":31},{"name":16,"@type":30},{"title":376,"description":380},[2188,2189,2190,2191,2192],{"tag":367,"color":368},{"tag":398,"color":399},{"tag":401,"color":402},{"tag":46,"color":47},{"tag":84,"color":85},{"id":407,"title":408,"cover":409,"coverAlt":410,"date":411,"description":412,"draft":11,"extension":12,"locale":13,"meta":2194,"navigation":25,"path":421,"schemaOrg":2196,"seo":2199,"series":360,"seriesDescription":361,"seriesOrder":426,"seriesTitle":363,"slug":33,"stem":427,"tags":2200,"__hash__":435},{"updatedAt":414,"coverCaption":415,"author":16,"keywords":2195},[267,417,418,419,420],[2197],{"headline":408,"author":2198,"datePublished":414,"@type":31},{"name":16,"@type":30},{"title":408,"description":412},[2201,2202,2203,2204],{"tag":367,"color":368},{"tag":431,"color":432},{"tag":229,"color":245},{"tag":84,"color":85},{"id":437,"title":438,"cover":439,"coverAlt":440,"date":441,"description":442,"draft":11,"extension":12,"locale":13,"meta":2206,"navigation":25,"path":451,"schemaOrg":2208,"seo":2211,"series":360,"seriesDescription":361,"seriesOrder":118,"seriesTitle":363,"slug":33,"stem":456,"tags":2212,"__hash__":463},{"updatedAt":444,"coverCaption":445,"author":16,"keywords":2207},[267,447,448,449,450],[2209],{"headline":438,"author":2210,"datePublished":444,"@type":31},{"name":16,"@type":30},{"title":438,"description":442},[2213,2214,2215,2216],{"tag":367,"color":368},{"tag":447,"color":460},{"tag":229,"color":245},{"tag":84,"color":85},{"id":465,"title":466,"cover":467,"coverAlt":468,"date":469,"description":470,"draft":11,"extension":12,"locale":13,"meta":2218,"navigation":25,"path":479,"schemaOrg":2220,"seo":2223,"series":360,"seriesDescription":361,"seriesOrder":484,"seriesTitle":363,"slug":33,"stem":485,"tags":2224,"__hash__":490},{"updatedAt":472,"coverCaption":473,"author":16,"keywords":2219},[267,475,476,477,478],[2221],{"headline":466,"author":2222,"datePublished":472,"@type":31},{"name":16,"@type":30},{"title":466,"description":470},[2225,2226,2227],{"tag":367,"color":368},{"tag":229,"color":245},{"tag":312,"color":313},{"id":492,"title":493,"cover":494,"coverAlt":495,"date":496,"description":497,"draft":11,"extension":12,"locale":13,"meta":2229,"navigation":25,"path":506,"schemaOrg":2231,"seo":2234,"series":360,"seriesDescription":361,"seriesOrder":147,"seriesTitle":363,"slug":33,"stem":511,"tags":2235,"__hash__":518},{"updatedAt":499,"coverCaption":500,"author":16,"keywords":2230},[267,502,503,504,505],[2232],{"headline":493,"author":2233,"datePublished":499,"@type":31},{"name":16,"@type":30},{"title":493,"description":497},[2236,2237,2238,2239,2240],{"tag":367,"color":368},{"tag":229,"color":245},{"tag":401,"color":402},{"tag":46,"color":47},{"tag":312,"color":313},{"id":520,"title":521,"cover":522,"coverAlt":523,"date":524,"description":525,"draft":11,"extension":12,"locale":13,"meta":2242,"navigation":25,"path":534,"schemaOrg":2244,"seo":2247,"series":360,"seriesDescription":361,"seriesOrder":278,"seriesTitle":363,"slug":33,"stem":539,"tags":2248,"__hash__":545},{"updatedAt":527,"coverCaption":528,"author":16,"keywords":2243},[267,530,531,532,533],[2245],{"headline":521,"author":2246,"datePublished":527,"@type":31},{"name":16,"@type":30},{"title":521,"description":525},[2249,2250,2251,2252],{"tag":367,"color":368},{"tag":229,"color":245},{"tag":401,"color":402},{"tag":312,"color":313},{"id":547,"title":548,"cover":549,"coverAlt":550,"date":551,"description":552,"draft":11,"extension":12,"locale":13,"meta":2254,"navigation":25,"path":560,"schemaOrg":2256,"seo":2259,"series":360,"seriesDescription":361,"seriesOrder":176,"seriesTitle":363,"slug":33,"stem":565,"tags":2260,"__hash__":571},{"updatedAt":554,"coverCaption":555,"author":16,"keywords":2255},[267,557,558,559,170],[2257],{"headline":548,"author":2258,"datePublished":554,"@type":31},{"name":16,"@type":30},{"title":548,"description":552},[2261,2262,2263,2264],{"tag":367,"color":368},{"tag":229,"color":245},{"tag":46,"color":47},{"tag":312,"color":313},{"id":573,"title":574,"cover":575,"coverAlt":574,"date":576,"description":577,"draft":11,"extension":12,"locale":13,"meta":2266,"navigation":25,"path":585,"schemaOrg":2268,"seo":2271,"series":360,"seriesDescription":361,"seriesOrder":241,"seriesTitle":363,"slug":33,"stem":590,"tags":2272,"__hash__":596},{"updatedAt":579,"readingTime":349,"coverCaption":580,"author":16,"keywords":2267},[267,582,170,583,584],[2269],{"headline":574,"author":2270,"datePublished":579,"@type":31},{"name":16,"@type":30},{"title":574,"description":577},[2273,2274,2275,2276],{"tag":367,"color":368},{"tag":229,"color":245},{"tag":46,"color":47},{"tag":312,"color":313},{"id":598,"title":599,"cover":600,"coverAlt":599,"date":601,"description":602,"draft":11,"extension":12,"locale":13,"meta":2278,"navigation":25,"path":609,"schemaOrg":2280,"seo":2283,"series":116,"seriesDescription":117,"seriesOrder":484,"seriesTitle":119,"slug":33,"stem":615,"tags":2284,"__hash__":621},{"updatedAt":264,"coverCaption":604,"author":16,"keywords":2279},[199,271,606,607,608,268],[2281],{"headline":599,"author":2282,"datePublished":613,"@type":31},{"name":16,"@type":30},{"title":599,"description":602},[2285,2286,2287,2288],{"tag":46,"color":47},{"tag":200,"color":214},{"tag":87,"color":88},{"tag":84,"color":85},{"id":623,"title":624,"cover":625,"coverAlt":626,"date":627,"description":628,"draft":11,"extension":12,"locale":13,"meta":2290,"navigation":25,"path":635,"schemaOrg":2292,"seo":2295,"series":641,"seriesDescription":642,"seriesOrder":643,"seriesTitle":644,"slug":33,"stem":645,"tags":2296,"__hash__":656},{"updatedAt":630,"coverCaption":626,"author":16,"keywords":2291},[267,632,633,634,170,583],[2293],{"headline":638,"author":2294,"datePublished":630,"@type":31},{"name":16,"@type":30},{"title":624,"description":628},[2297,2298,2299,2300,2301],{"tag":648,"color":649},{"tag":651,"color":652},{"tag":200,"color":214},{"tag":46,"color":47},{"tag":84,"color":85},{"id":658,"title":659,"cover":660,"coverAlt":661,"date":662,"description":663,"draft":11,"extension":12,"locale":13,"meta":2303,"navigation":25,"path":670,"schemaOrg":2305,"seo":2308,"series":641,"seriesDescription":642,"seriesOrder":676,"seriesTitle":644,"slug":33,"stem":677,"tags":2309,"__hash__":685},{"updatedAt":665,"coverCaption":604,"author":16,"keywords":2304},[267,667,668,669,170,583],[2306],{"headline":673,"author":2307,"datePublished":665,"@type":31},{"name":16,"@type":30},{"title":659,"description":663},[2310,2311,2312,2313],{"tag":648,"color":649},{"tag":681,"color":682},{"tag":401,"color":402},{"tag":312,"color":313},{"id":687,"title":688,"cover":689,"coverAlt":690,"date":691,"description":692,"draft":11,"extension":12,"locale":13,"meta":2315,"navigation":25,"path":700,"schemaOrg":2317,"seo":2320,"series":641,"seriesDescription":642,"seriesOrder":362,"seriesTitle":644,"slug":33,"stem":706,"tags":2321,"__hash__":713},{"updatedAt":694,"coverCaption":604,"author":16,"keywords":2316},[267,696,697,698,699],[2318],{"headline":703,"author":2319,"datePublished":694,"@type":31},{"name":16,"@type":30},{"title":688,"description":692},[2322,2323,2324,2325,2326],{"tag":648,"color":649},{"tag":87,"color":88},{"tag":401,"color":402},{"tag":46,"color":47},{"tag":84,"color":85},{"id":715,"title":716,"cover":717,"coverAlt":718,"date":719,"description":720,"draft":11,"extension":12,"locale":33,"meta":2328,"navigation":25,"path":728,"schemaOrg":2330,"seo":2333,"series":641,"seriesDescription":642,"seriesOrder":349,"seriesTitle":644,"slug":33,"stem":733,"tags":2334,"__hash__":739},{"updatedAt":722,"coverCaption":723,"keywords":2329},[267,725,726,727,505,170,583],[2331],{"headline":716,"author":2332,"datePublished":722,"@type":31},{"name":16,"@type":30},{"title":716,"description":720},[2335,2336,2337,2338],{"tag":648,"color":649},{"tag":681,"color":682},{"tag":401,"color":402},{"tag":312,"color":313},{"id":741,"title":742,"cover":743,"coverAlt":744,"date":745,"description":746,"draft":11,"extension":12,"locale":13,"meta":2340,"navigation":25,"path":755,"schemaOrg":2342,"seo":2345,"series":641,"seriesDescription":642,"seriesOrder":426,"seriesTitle":644,"slug":33,"stem":761,"tags":2346,"__hash__":767},{"updatedAt":748,"coverCaption":749,"author":16,"keywords":2341},[267,751,752,753,754,170,583],[2343],{"headline":758,"author":2344,"datePublished":748,"@type":31},{"name":16,"@type":30},{"title":742,"description":746},[2347,2348,2349,2350],{"tag":648,"color":649},{"tag":253,"color":254},{"tag":229,"color":245},{"tag":84,"color":85},{"id":769,"title":770,"cover":771,"coverAlt":772,"date":773,"description":774,"draft":11,"extension":12,"locale":13,"meta":2352,"navigation":25,"path":781,"schemaOrg":2354,"seo":2357,"series":641,"seriesDescription":642,"seriesOrder":118,"seriesTitle":644,"slug":33,"stem":787,"tags":2358,"__hash__":795},{"updatedAt":776,"coverCaption":604,"author":16,"keywords":2353},[267,778,779,780,170,583],[2355],{"headline":784,"author":2356,"datePublished":776,"@type":31},{"name":16,"@type":30},{"title":770,"description":774},[2359,2360,2361,2362],{"tag":648,"color":649},{"tag":791,"color":792},{"tag":46,"color":47},{"tag":312,"color":313},{"id":797,"title":798,"cover":799,"coverAlt":800,"date":801,"description":802,"draft":11,"extension":12,"locale":13,"meta":2364,"navigation":25,"path":809,"schemaOrg":2366,"seo":2369,"series":641,"seriesDescription":642,"seriesOrder":484,"seriesTitle":644,"slug":33,"stem":815,"tags":2370,"__hash__":820},{"updatedAt":804,"coverCaption":604,"author":16,"keywords":2365},[267,806,807,808,170,583],[2367],{"headline":812,"author":2368,"datePublished":804,"@type":31},{"name":16,"@type":30},{"title":798,"description":802},[2371,2372,2373],{"tag":648,"color":649},{"tag":250,"color":251},{"tag":312,"color":313},{"id":822,"title":823,"cover":824,"coverAlt":825,"date":826,"description":827,"draft":11,"extension":12,"locale":13,"meta":2375,"navigation":25,"path":835,"schemaOrg":2377,"seo":2380,"series":641,"seriesDescription":642,"seriesOrder":147,"seriesTitle":644,"slug":33,"stem":841,"tags":2381,"__hash__":847},{"updatedAt":829,"coverCaption":604,"author":16,"keywords":2376},[267,831,832,833,834,170,583],[2378],{"headline":838,"author":2379,"datePublished":829,"@type":31},{"name":16,"@type":30},{"title":823,"description":827},[2382,2383,2384,2385],{"tag":648,"color":649},{"tag":681,"color":682},{"tag":46,"color":47},{"tag":312,"color":313},{"id":849,"title":850,"cover":851,"coverAlt":852,"date":853,"description":854,"draft":11,"extension":12,"locale":13,"meta":2387,"navigation":25,"path":861,"schemaOrg":2389,"seo":2392,"series":641,"seriesDescription":642,"seriesOrder":278,"seriesTitle":644,"slug":33,"stem":867,"tags":2393,"__hash__":874},{"updatedAt":856,"coverCaption":604,"author":16,"keywords":2388},[267,858,859,860,170,583,505],[2390],{"headline":864,"author":2391,"datePublished":856,"@type":31},{"name":16,"@type":30},{"title":850,"description":854},[2394,2395,2396,2397],{"tag":648,"color":649},{"tag":871,"color":47},{"tag":681,"color":682},{"tag":312,"color":313},{"id":876,"title":877,"cover":878,"coverAlt":879,"date":880,"description":881,"draft":11,"extension":12,"locale":13,"meta":2399,"navigation":25,"path":891,"schemaOrg":2401,"seo":2404,"series":641,"seriesDescription":642,"seriesOrder":176,"seriesTitle":644,"slug":33,"stem":897,"tags":2405,"__hash__":905},{"updatedAt":883,"coverCaption":884,"author":16,"keywords":2400},[267,886,887,888,889,890,170,583],[2402],{"headline":894,"author":2403,"datePublished":883,"@type":31},{"name":16,"@type":30},{"title":877,"description":881},[2406,2407,2408,2409],{"tag":648,"color":649},{"tag":901,"color":902},{"tag":681,"color":682},{"tag":312,"color":313},{"id":907,"title":908,"cover":909,"coverAlt":908,"date":910,"description":911,"draft":11,"extension":12,"locale":13,"meta":2411,"navigation":25,"path":916,"schemaOrg":2413,"seo":2416,"series":641,"seriesDescription":642,"seriesOrder":241,"seriesTitle":644,"slug":33,"stem":922,"tags":2417,"__hash__":930},{"updatedAt":748,"readingTime":118,"coverCaption":913,"author":16,"keywords":2412},[267,648,915,52],[2414],{"headline":908,"author":2415,"datePublished":920,"@type":31},{"name":16,"@type":30},{"title":908,"description":911},[2418,2419,2420,2421,2422,2423],{"tag":648,"color":649},{"tag":681,"color":682},{"tag":901,"color":902},{"tag":871,"color":47},{"tag":46,"color":47},{"tag":312,"color":313},{"id":932,"title":933,"cover":934,"coverAlt":933,"date":935,"description":936,"draft":11,"extension":12,"locale":13,"meta":2425,"navigation":25,"path":943,"schemaOrg":2427,"seo":2430,"series":207,"seriesDescription":208,"seriesOrder":484,"seriesTitle":209,"slug":33,"stem":949,"tags":2431,"__hash__":958},{"updatedAt":194,"coverCaption":938,"author":16,"keywords":2426},[199,940,941,942,915],[2428],{"headline":933,"author":2429,"datePublished":947,"@type":31},{"name":16,"@type":30},{"title":933,"description":936},[2432,2433,2434,2435,2436,2437],{"tag":200,"color":214},{"tag":942,"color":953},{"tag":229,"color":245},{"tag":46,"color":47},{"tag":84,"color":85},{"tag":52,"color":53},{"id":960,"title":961,"cover":962,"coverAlt":961,"date":963,"description":964,"draft":11,"extension":12,"locale":13,"meta":2439,"navigation":25,"path":971,"schemaOrg":2441,"seo":2444,"series":207,"seriesDescription":208,"seriesOrder":147,"seriesTitle":209,"slug":33,"stem":977,"tags":2445,"__hash__":987},{"updatedAt":194,"coverCaption":966,"author":16,"keywords":2440},[267,968,969,970,170,271],[2442],{"headline":961,"author":2443,"datePublished":975,"@type":31},{"name":16,"@type":30},{"title":961,"description":964},[2446,2447,2448,2449,2450,2451],{"tag":980,"color":981},{"tag":49,"color":50},{"tag":200,"color":214},{"tag":942,"color":953},{"tag":229,"color":245},{"tag":52,"color":53},{"id":989,"title":990,"cover":991,"coverAlt":992,"date":993,"description":994,"draft":11,"extension":12,"locale":13,"meta":2453,"navigation":25,"path":1001,"schemaOrg":2455,"seo":2458,"series":116,"seriesDescription":117,"seriesOrder":241,"seriesTitle":119,"slug":33,"stem":1007,"tags":2459,"__hash__":1014},{"updatedAt":264,"coverCaption":996,"author":16,"keywords":2454},[267,46,998,170,999,1000],[2456],{"headline":990,"author":2457,"datePublished":1005,"@type":31},{"name":16,"@type":30},{"title":990,"description":994},[2460,2461,2462],{"tag":46,"color":47},{"tag":312,"color":313},{"tag":1012,"color":1013},{"id":1016,"title":1017,"cover":1018,"coverAlt":1019,"date":1020,"description":1021,"draft":11,"extension":12,"locale":13,"meta":2464,"navigation":25,"path":1026,"schemaOrg":2465,"seo":2468,"series":33,"seriesDescription":33,"seriesOrder":33,"seriesTitle":33,"slug":33,"stem":1032,"tags":2469,"__hash__":1041},{"updatedAt":1023,"coverCaption":1024,"author":16,"keywords":1025},[2466],{"headline":1017,"author":2467,"datePublished":1030,"@type":31},{"name":16,"@type":30},{"title":1017,"description":1021},[2470,2471,2472,2473,2474],{"tag":1035,"color":1036},{"tag":81,"color":82},{"tag":46,"color":47},{"tag":90,"color":91},{"tag":84,"color":85},{"id":1043,"title":1044,"cover":1045,"coverAlt":1046,"date":1047,"description":1048,"draft":11,"extension":12,"locale":13,"meta":2476,"navigation":25,"path":1051,"schemaOrg":2477,"seo":2480,"series":33,"seriesDescription":33,"seriesOrder":33,"seriesTitle":33,"slug":33,"stem":1057,"tags":2481,"__hash__":1064},{"updatedAt":1023,"coverCaption":1050},[2478],{"headline":1044,"author":2479,"datePublished":1055,"@type":31},{"name":16,"@type":30},{"title":1044,"description":1048},[2482,2483,2484],{"tag":1060,"color":1061},{"tag":90,"color":91},{"tag":312,"color":313},{"id":1066,"title":1067,"cover":1068,"coverAlt":1069,"date":1070,"description":1071,"draft":11,"extension":12,"locale":13,"meta":2486,"navigation":25,"path":1074,"schemaOrg":2487,"seo":2490,"series":33,"seriesDescription":33,"seriesOrder":33,"seriesTitle":33,"slug":33,"stem":1080,"tags":2491,"__hash__":1084},{"updatedAt":1023,"coverCaption":1073},[2488],{"headline":1067,"author":2489,"datePublished":1078,"@type":31},{"name":16,"@type":30},{"title":1067,"description":1071},[2492,2493],{"tag":1012,"color":1013},{"tag":90,"color":91},{"id":1086,"title":1087,"cover":1088,"coverAlt":1019,"date":1089,"description":1090,"draft":11,"extension":12,"locale":13,"meta":2495,"navigation":25,"path":1094,"schemaOrg":2496,"seo":2499,"series":33,"seriesDescription":33,"seriesOrder":33,"seriesTitle":33,"slug":33,"stem":1100,"tags":2500,"__hash__":1105},{"updatedAt":1023,"coverCaption":1092,"author":16,"keywords":1093},[2497],{"headline":1087,"author":2498,"datePublished":1098,"@type":31},{"name":16,"@type":30},{"title":1087,"description":1090},[2501,2502,2503],{"tag":90,"color":91},{"tag":312,"color":313},{"tag":1012,"color":1013},{"id":1107,"title":1108,"cover":1109,"coverAlt":1110,"date":1111,"description":1112,"draft":11,"extension":12,"locale":13,"meta":2505,"navigation":25,"path":1115,"schemaOrg":2506,"seo":2509,"series":33,"seriesDescription":33,"seriesOrder":33,"seriesTitle":33,"slug":33,"stem":1121,"tags":2510,"__hash__":1128},{"updatedAt":1023,"coverCaption":1114},[2507],{"headline":1108,"author":2508,"datePublished":1119,"@type":31},{"name":16,"@type":30},{"title":1108,"description":1112},[2511,2512,2513],{"tag":16,"color":1036},{"tag":1125,"color":1126},{"tag":90,"color":91},1786764859645]