Write better Vue and Nuxt code.

A highly curated collection of practical tips, advanced patterns, and performance tweaks for Vue & Nuxt.

useTip.ts
const { tip } = useAsyncData(
  'awesome-trick',
  () => queryContent().findOne()
)

Popular Topics
vue
nuxt
vite

In Vue 3.5, you can destructure props with reactive default values using native JavaScript syntax — no more `withDefaults()` needed.

<!-- Before (Vue 3.4) -->
<script setup lang="ts">
const props = withDefaults(
  defineProps<{
    count?: number
    message?: string
  }>(),
  {
    count: 0,
    message: 'hello',
  }
)
</script>
<!-- After (Vue 3.5+) -->
<script setup lang="ts">
const { count = 0, message = 'hello' } = defineProps<{
  count?: number
  message?: string
}>()
</script>

<template>
  <p>{{ count }} - {{ message }}</p>
</template>