I’m now giving early testers access to my Nuxt Starter Kit ! With the code TN8JDLYO, you’ll get 30% off — that’s a production-ready Nuxt starter kit for around $30.
Just a heads-up: you’ll need a Nuxt UI Pro license, since the kit is highly opinionated and tightly integrated with NuxtHub and Nuxt UI Pro. Excited to see some of you supporting my work!
👉🏻 Create fully-managed RAG pipelines to power your Nuxt AI applications with accurate and up-to-date information.
💡 Nuxt Tip: Data Fetching Improvements
Nuxt 3.17 introduced significant improvements to the data composables useAsyncDatauseAsyncData and useFetchuseFetch.
All calls to these composables with the same key now share the underlying refs, ensuring consistency across your application:
1// 1️⃣ ComponentA.vue2const { data: users, pending } = useAsyncData('users', fetchUsers)34// 2️⃣ ComponentB.vue5// This will reference the same data state as ComponentA6const { data: users, status } = useAsyncData('users', fetchUsers)7// When either component refreshes the data, both will update consistently
You can now use computed refs, plain refs, or getter functions as keys:
1const userId = ref('123')2const { data: user } = useAsyncData(3 computed(() => `user-${userId.value}`),4 () => fetchUser(userId.value)5)67// Changing the userId will automatically trigger a new data fetch8// and clean up the old data if no other components are using it9userId.value = '456'
Multiple components watching the same data source will now trigger only a single data fetch when dependencies change:
1// In multiple components:2const { data } = useAsyncData(3 'users', 4 () => $fetch(`/api/users?page=${route.query.page}`),5 { watch: [() => route.query.page] }6)78// When route.query.page changes, only one fetch operation will occur9// All components using this key will update simultaneously