Suspense + `out-in` Transition renderes component out of order
Vue version
since 3.3.10 (3.4.5)
Link to minimal reproduction
Steps to reproduce
- Click on the button
- See that component is not replaced but rendered below all the other components
What is expected?
The component should be replaced in-place when the transition is triggered.
What is actually happening?
The component is rendered below, out of order
System Info
System:
OS: macOS 13.5.1
CPU: (12) arm64 Apple M2 Max
Memory: 110.55 MB / 32.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 20.9.0 - /usr/local/bin/node
Yarn: 1.22.19 - /opt/homebrew/bin/yarn
npm: 9.8.0 - /opt/homebrew/bin/npm
pnpm: 8.5.0 - ~/Library/pnpm/pnpm
bun: 1.0.21 - /opt/homebrew/bin/bun
Browsers:
Chrome: 119.0.6045.105
Safari: 16.6
Repro in SFC Playground using macOS Firefox Dev Edition 122.0b3
Any additional comments?
As a workaround, wrapping a div
around the transition works fine and replaces the component as expected. Using in-out
(without a wrapper div
) also works.
Possibly related issues and PRs: https://github.com/vuejs/core/pull/9309, https://github.com/vuejs/core/issues/9769, https://github.com/vuejs/core/pull/9770