Skip to content

consider using vue vapor mode for components #167

@mr-zwets

Description

@mr-zwets

consider using vue vapor mode for components

GPT:

Known constraints from beta notes:
Vapor-only mode does not support Suspense.
Options API/globalProperties/getCurrentInstance behavior differs/limited.
Mixed Vapor+VDOM nesting works, but edge cases remain (especially component-library interop).
Opt-in Method (expected)

Per component: use <script setup vapor> in SFCs.
App-level:
Vapor-only app: createVaporApp(...)
Mixed with normal app: keep createApp(...) and install vaporInteropPlugin.
Your app is Quasar + existing VDOM, so practical path is mixed mode first (interop plugin), not full vapor app.
Cashonize Component Rollout Recommendation Start with high-render, low-Quasar-interaction components first:

Wave 1 (best pilot)
src/components/settings/hdAddresses.vue
src/components/walletconnect/hdAddressSelect.vue
Rationale: table/list heavy, script-setup already, minimal Quasar component coupling.
Wave 2 (bigger perf impact, moderate risk)
src/components/history/txHistory.vue
src/components/myTokens.vue
Rationale: large lists and frequent updates; but includes more nested components and some Quasar usage.
Defer initially (interop risk/complexity)
src/App.vue (Suspense root)
src/pages/WalletPage.vue (KeepAlive view orchestration)
CashConnect/WalletConnect dialog-heavy components using many q-* components
tokenItemNFT.vue / nftChild.vue (complex action/state/dialog flows)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions