SDK
JavaScript SDK
Description
Follow-up to getsentry/sentry-javascript#23375.
Nuxt 5 disables Vue's Options API by default
(nuxt/nuxt#35791), which turns app.mixin() into a silent no-op. The SDK records the default
spans through an app.mount() wrap instead; component tracking (trackComponents) still needs
the Options API.
Affected pages:
What to document
References
packages/vue/src/tracing.ts, packages/vue/src/constants.ts
packages/vue/test/integration/mixinRegistration.test.ts (root tracking, hook behavior, late
children not extending the span)
dev-packages/e2e-tests/test-applications/vue-3/tests/performance.test.ts (delayed async
component, both variants)
Suggested Solution
No response
SDK
JavaScript SDK
Description
Follow-up to getsentry/sentry-javascript#23375.
Nuxt 5 disables Vue's Options API by default
(nuxt/nuxt#35791), which turns
app.mixin()into a silent no-op. The SDK records the defaultspans through an
app.mount()wrap instead; component tracking (trackComponents) still needsthe Options API.
Affected pages:
What to document
trackComponents(and non-defaulthooks)only work through
app.mixin(). The SDK logs a console warning when the mixin is unavailable.vue: { optionsApi: true }innuxt.config.ts. Plain Vue users control it through the__VUE_OPTIONS_API__define in their bundler.Application Renderand the rootVue <Root>mount span are always recorded. On Nuxt without the Options API, the root renderspan extends until the page's
<Suspense>boundary resolves.['activate', 'mount', 'update']; the SDKdefault is
['activate', 'mount'](packages/vue/src/constants.ts).ui.vue.render; the SDK emits opui.renderwithorigin
auto.ui.vue.timers are per component, so late mounts (async components, lazy routes,
<Suspense>) do notextend the span. It ends with the initial synchronous render.
hooksapply to the root even withtrackComponents: false, e.g.hooks: ['update']alone produces aVue <Root>ui.updatespan. Undocumented on both pages.
References
packages/vue/src/tracing.ts,packages/vue/src/constants.tspackages/vue/test/integration/mixinRegistration.test.ts(root tracking, hook behavior, latechildren not extending the span)
dev-packages/e2e-tests/test-applications/vue-3/tests/performance.test.ts(delayed asynccomponent, both variants)
Suggested Solution
No response