vike-vue
Version history: CHANGELOG.md
Examples: vike.dev/new and examples/
Source code: GitHub > vikejs/vike-vue
The Vike extension vike-vue integrates Vue in a full-fledged manner, providing a DX like a regular frontend framework such as Nuxt.
The documentation for using vike-vue can be found throughout this website (vike.dev).
The guides, such as Guides > Data Fetching, assume you're using Vike with
vike-react,vike-vue, orvike-solid. If you aren't then see the sectionsWithout vike-{react,vue,solid}such as API >useData()> Withoutvike-{react,vue,solid}.
You can integrate Vue yourself instead of using
vike-vue, see Vue > Custom integration.
Scaffold new vike-vue app
Use vike.dev/new for creating a new vike-vue app.
Add vike-vue to existing Vike app
To add vike-vue to an existing Vike app: install the vike-vue npm package (e.g. $ npm install vike-vue) then extend your existing +config.js file (or create one) with vike-vue:
// /pages/+config.js
import vikeVue from 'vike-vue/config'
export default {
// ...
extends: [vikeVue]
}// /pages/+config.ts
import type { Config } from 'vike/types'
import vikeVue from 'vike-vue/config'
export default {
// ...
extends: [vikeVue]
} satisfies ConfigYou can then use new settings introduced by vike-vue:
// /pages/+config.js
import vikeVue from 'vike-vue/config'
export default {
// ...
// Setting to toggle SSR
ssr: false,
extends: [vikeVue]
}// /pages/+config.ts
import type { Config } from 'vike/types'
import vikeVue from 'vike-vue/config'
export default {
// ...
// Setting to toggle SSR
ssr: false,
extends: [vikeVue]
} satisfies ConfigSee also:
Under the hood
The vike-vue extension is only around 1k lines of code.
It's simple, readable, and highly polished.
Reading the source code of vike-vue is very much an option for understanding, debugging, and/or contributing.
Contributions are welcome! See CONTRIBUTING.md to get started.
What vike-vue does is essentially this:
- Sets Vike hooks and Vike settings on your behalf.
Most notably:
- Creates new Vike settings and new Vike hooks. (By using API >
+meta.)For example
<Layout>,ssr, andonCreateApp(). - Implements Vue component hooks.
For example
useData()andusePageContext().
It implements the following:
-
useData() -
usePageContext() -
+Layout -
+ssr -
+stream -
clientOnly() -
+onCreateApp()hook -
+onBeforeRenderHtml()hook -
+onAfterRenderHtml()hook -
+onBeforeRenderClient()hook -
+onAfterRenderClient()hook -
+Head -
+title -
+description -
+image -
favicon -
+viewport -
lang -
+htmlAttributes -
+bodyAttributes -
headHtmlBegin -
headHtmlEnd -
bodyHtmlBegin -
bodyHtmlEnd
For a better overview, see the following lists instead. (They also include all settings and hooks created by
vike-vue.)