Nuxt · NUXT0030
Avoid browser side effects in universal setup
Flags browser side effects in setup in Nuxt hydration code before it leaks into runtime behavior.
nuxt/hydration/no-browser-side-effects-in-setupsrc/rule-packs/nuxt/rules/nuxt/no-browser-side-effects-in-setup.ts Upstream docs Run this rule
pnpm nuxt doctor --rules nuxt/hydration/no-browser-side-effects-in-setup
Why it matters
Server-rendered markup must match the first client render. Browser-only state, time, randomness, or hash-sensitive URLs can create hydration mismatches.
Recommended fix
Remove browser side effects in setup, or move it to the Nuxt runtime/API that owns that behavior.
Useful links
Example
Move browser side effects out of setup
Before
<script setup lang="ts">
localStorage.setItem('seen', '1')
</script>
After
<script setup lang="ts">
onMounted(() => {
localStorage.setItem('seen', '1')
})
</script>