Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

beforeUnmount in a mixin is not called when a component has beforeUnmount defined #4450

Closed
aethr opened this issue Aug 26, 2021 · 2 comments
Closed

Comments

@aethr
Copy link

aethr commented Aug 26, 2021

Version

3.2.6

Reproduction link

[https://sfc.vuejs.org/#eyJBcHAudnVlIjoiPHNjcmlwdD5cbiAgaW1wb3J0IFdpdGhIb29rIGZyb20gJy4vV2l0aEhvb2sudnVlJztcbiAgaW1wb3J0IFdpdGhvdXRIb29rIGZyb20gJy4vV2l0aG91dEhvb2sudnVlJztcbiAgXG5leHBvcnQgZGVmYXVsdCB7XG4gIGNvbXBvbmVudHM6IHsgV2l0aEhvb2ssIFdpdGhvdXRIb29rIH0sXG4gIGRhdGE6ICgpID0 ICh7XG4gICAgc2hvd0NvbXA6IHRydWVcbiAgfSksXG59O1xuPC9zY3JpcHQ XG5cbjx0ZW1wbGF0ZT5cbiAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHYtbW9kZWw9XCJzaG93Q29tcFwiPlxuICA8V2l0aEhvb2sgdi1pZj1cInNob3dDb21wXCIgLz5cbiAgPFdpdGhvdXRIb29rIHYtaWY9XCJzaG93Q29tcFwiIC8 XG4gIDxkaXYgdi1lbHNlPlxuICAgIFVubW91bnRlZFxuICA8L2Rpdj5cbjwvdGVtcGxhdGU IiwiV2l0aG91dEhvb2sudnVlIjoiPHNjcmlwdD5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbWl4aW5zOiBbXG4gICAge1xuICAgICAgYmVmb3JlVW5tb3VudCgpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1dpdGhvdXRIb29rLm1peGluIGJlZm9yZVVubW91bnQnKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbn07XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2PlxuICAgIFdpdGhvdXQgYmVmb3JlVW5tb3VudFxuICA8L2Rpdj5cbjwvdGVtcGxhdGU IiwiV2l0aEhvb2sudnVlIjoiPHNjcmlwdD5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbWl4aW5zOiBbXG4gICAge1xuICAgICAgYmVmb3JlVW5tb3VudCgpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1dpdGhIb29rLm1peGluIGJlZm9yZVVubW91bnQnKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbiAgYmVmb3JlVW5tb3VudCgpIHtcbiAgICBjb25zb2xlLmxvZygnV2l0aEhvb2sgYmVmb3JlVW5tb3VudCcpO1xuICB9LFxufTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU XG4gIDxkaXY XG4gICAgV2l0aCBiZWZvcmVVbm1vdW50XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT4ifQ==](https://sfc.vuejs.org/#eyJBcHAudnVlIjoiPHNjcmlwdD5cbiAgaW1wb3J0IFdpdGhIb29rIGZyb20gJy4vV2l0aEhvb2sudnVlJztcbiAgaW1wb3J0IFdpdGhvdXRIb29rIGZyb20gJy4vV2l0aG91dEhvb2sudnVlJztcbiAgXG5leHBvcnQgZGVmYXVsdCB7XG4gIGNvbXBvbmVudHM6IHsgV2l0aEhvb2ssIFdpdGhvdXRIb29rIH0sXG4gIGRhdGE6ICgpID0 ICh7XG4gICAgc2hvd0NvbXA6IHRydWVcbiAgfSksXG59O1xuPC9zY3JpcHQ XG5cbjx0ZW1wbGF0ZT5cbiAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHYtbW9kZWw9XCJzaG93Q29tcFwiPlxuICA8V2l0aEhvb2sgdi1pZj1cInNob3dDb21wXCIgLz5cbiAgPFdpdGhvdXRIb29rIHYtaWY9XCJzaG93Q29tcFwiIC8 XG4gIDxkaXYgdi1lbHNlPlxuICAgIFVubW91bnRlZFxuICA8L2Rpdj5cbjwvdGVtcGxhdGU IiwiV2l0aG91dEhvb2sudnVlIjoiPHNjcmlwdD5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbWl4aW5zOiBbXG4gICAge1xuICAgICAgYmVmb3JlVW5tb3VudCgpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1dpdGhvdXRIb29rLm1peGluIGJlZm9yZVVubW91bnQnKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbn07XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2PlxuICAgIFdpdGhvdXQgYmVmb3JlVW5tb3VudFxuICA8L2Rpdj5cbjwvdGVtcGxhdGU IiwiV2l0aEhvb2sudnVlIjoiPHNjcmlwdD5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbWl4aW5zOiBbXG4gICAge1xuICAgICAgYmVmb3JlVW5tb3VudCgpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1dpdGhIb29rLm1peGluIGJlZm9yZVVubW91bnQnKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbiAgYmVmb3JlVW5tb3VudCgpIHtcbiAgICBjb25zb2xlLmxvZygnV2l0aEhvb2sgYmVmb3JlVW5tb3VudCcpO1xuICB9LFxufTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU XG4gIDxkaXY XG4gICAgV2l0aCBiZWZvcmVVbm1vdW50XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT4ifQ==)

Steps to reproduce

When we added a beforeUnmount lifecycle hook to a component in our app, the beforeUnmount lifecycle hook in a mixin in that component was no longer being called.

What is expected?

Based on the explanation in the API documentation, we expect that when a component implements a lifecycle hook and also uses a mixin with the same lifecycle hook, both should be called, with the mixin hooks being called first.

What is actually happening?

Adding a beforeUnmount lifecycle hook to a component prevents beforeUnmount lifecycle hooks from a mixin from being fired.


It appears that unmounted and beforeUnmount may be missing from internalOptionMergeStrats:

https://github.com/vuejs/vue-next/blob/0627765b362bbac7e9f128a413b681a6021086b4/packages/runtime-core/src/componentOptions.ts#L1003-L1031

@laineus
Copy link
Contributor

laineus commented Aug 26, 2021

See also this PR: #4447

@posva
Copy link
Member

posva commented Aug 26, 2021

Your repro link is broken. Closing as a duplicate of #4447

@posva posva closed this as completed Aug 26, 2021
@github-actions github-actions bot locked and limited conversation to collaborators Oct 13, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants