Why convert ASTRO to VUE?
Astro and Vue are separate rendering models - Astro pre-renders to HTML while .vue components rely on Vue's runtime reactivity. Astro even supports Vue directly, so people usually embed Vue rather than convert away from Astro.
How to convert ASTRO to VUE
Use Vue inside Astro FREE
Run npx astro add vue to add @astrojs/vue, then import and render .vue components inside your .astro files, hydrating them with client:* directives.
Manual rewrite to a .vue SFC FREE
Move the .astro markup into a <template> block and the code-fence logic into <script setup>, converting props, slots and expressions to Vue equivalents.
About these formats
An .astro file is a component template for the Astro web framework. It holds HTML-style markup plus an optional JavaScript or TypeScript script section, and Astro compiles it to plain HTML…
Open .ASTRO details →A .vue file is either an E-on Vue 3D landscape scene (terrain, sky, vegetation, lighting) or a Vue.js single-file web component. Open a 3D scene with Vue by Bentley Systems, now free to…
Open .VUE details →Quality & what to watch
- Astro's docs note you can use Vue components inside Astro, but not Astro components inside a Vue codebase.
- Vue uses directives like
v-if,v-forand:propbinding that have no direct Astro counterpart, so any rewrite is hand work. - Astro's server-only code fence and
client:*hydration model don't map onto Vue's runtime reactivity.
Frequently asked questions
Is there a .astro to .vue converter?
Can I run Vue components in an Astro project?
@astrojs/vue integration added with npx astro add vue.How do slots translate to Vue?
<slot> becomes Vue's <slot> in a <template>, but named slots and props need manual mapping.