Write Vue SFC Pages (.vue
pages) in your Astro projects.
- Use
.vue
files as pages in your Astro project - Full Vue SFC support with all Vue features
- Seamless integration with Astro's build system
- Ensures proper head rendering support
First, scaffold a new Astro project:
npm create astro@latest
Install the official Astro Vue integration:
npx astro add vue
pnpm add @vuecast/astro-module
# or
npm install @vuecast/astro-module
# or
yarn add @vuecast/astro-module
- Add the integration to your
astro.config.mjs
. Note that@vuecast/astro-module
must be added after the Vue integration:
import { defineConfig } from "astro/config";
import vue from "@astrojs/vue";
import vuecast from "@vuecast/astro-module";
export default defineConfig({
integrations: [
vue(), // Vue integration must come first
vuecast(), // Then add VueCast
],
});
- Create
.vue
files in yoursrc/pages
directory:
<!-- src/pages/index.vue -->
<script setup lang="ts">
const fruits = ["apples", "oranges", "bananas", "cherries", "grapes"];
</script>
<template>
<div>
<h1>Hello from VueCast!</h1>
<ul>
<li v-for="(fruit, index) in fruits" :key="index">
{{ index + 1 }}: {{ fruit }}
</li>
</ul>
</div>
</template>
<style scoped>
/* Your component styles here */
</style>
The integration:
- Registers
.vue
as a valid page extension in Astro - Sets up the Vue renderer for processing
.vue
files - Ensures proper head rendering support for Vue components
- Integrates with Astro's build system through Vite
MIT