VueNuxtViteVueTips & Tricks

Curated collection of practical tips, tricks and best practices for building modern Vue applications.

Nuxt 3.11's `usePreviewMode()` composable lets you toggle preview mode for draft content with a single call.

<!-- pages/[...slug].vue -->
<script setup>
const { enabled, state } = usePreviewMode()
</script>

<template>
  <div>
    <div v-if="enabled" class="preview-banner">
      Preview mode is active
    </div>
    <ContentRenderer :value="page" />
  </div>
</template>
// Activate by visiting: /my-page?preview=true&token=my-secret

// You can also customize the enable check:
const { enabled, state } = usePreviewMode({
  shouldEnable: () => {
    return route.query.preview === 'true'
      && route.query.token === 'my-secret'
  },
  getState: (currentState) => {
    return { token: route.query.token, ...currentState }
  },
})