This Astro integration enables server-side rendering and client-side hydration for your Vue 3 components.
There are two ways to add integrations to your project. Let's try the most convenient option first!
Astro includes a CLI tool for adding first party integrations: astro add. This command will:
- (Optionally) Install all necessary dependencies and peer dependencies
- (Also optionally) Update your
astro.config.*file to apply this integration
To install @astrojs/vue, run the following from your project directory and follow the prompts:
# Using NPM
npx astro add vue
# Using Yarn
yarn astro add vue
# Using PNPM
pnpx astro add vueIf you run into any hiccups, feel free to log an issue on our GitHub and try the manual installation steps below.
First, install the @astrojs/vue integration like so:
npm install @astrojs/vue
Most package managers will install associated peer dependencies as well. Still, if you see a "Cannot find package 'vue'" (or similar) warning when you start up Astro, you'll need to install Vue:
npm install vueNow, apply this integration to your astro.config.* file using the integrations property:
astro.config.mjs
import vue from '@astrojs/vue';
export default {
// ...
integrations: [vue()],
}To use your first Vue component in Astro, head to our UI framework documentation. You'll explore:
- π¦ how framework components are loaded,
- π§ client-side hydration options, and
- πͺ opportunities to mix and nest frameworks together
Also check our Astro Integration Documentation for more on integrations.
This integration is powered by @vitejs/plugin-vue. To customize the Vue compiler, options can be provided to the integration. See the @vitejs/plugin-vue docs for more details.
astro.config.mjs
import vue from '@astrojs/vue';
export default {
// ...
integrations: [vue({
template: {
compilerOptions: {
// treat any tag that starts with ion- as custom elements
isCustomElement: tag => tag.startsWith('ion-')
}
}
// ...
})],
}