Subscribe on changes!

`beforeUnmount` is called twice

avatar
Sep 19th 2020

Version

3.0.0

Reproduction link

Reproduction 1 https://codesandbox.io/s/vue-unmount-bug-hdi3o?file=/src/index.js

Reproduction 2 (using template, has bug) https://codesandbox.io/s/vue-unmount-bug-2-vr290?file=/src/index.js Reproduction 2 (using h, behaves correctly, it could be a bug of vue compiler) https://codesandbox.io/s/vue-unmount-bug-render-1bhk1?file=/src/index.js

Reproduction 2.1 (a more compact reproduction of R2) https://codesandbox.io/s/vue-unmount-bug-21-8jo3l

R1 and R2 may be caused by different reasons, please have a look.

Steps to reproduce

follow the link.

What is expected?

beforeUnmount is called once.

What is actually happening?

beforeUnmount is called twice.


It seems different child of a parent instance resolve to the same child instance. The reproduction condition is quite wired.

update: maybe it's related to createBlock.

avatar
Sep 20th 2020

Reproduction 2 is not fixed by https://github.com/vuejs/vue-next/pull/2173.

avatar
Sep 20th 2020

Yes, they caused by different reasons, I have fixed it in the latest commit.