-
Notifications
You must be signed in to change notification settings - Fork 15
Description
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)