From 741d3b36f21582e682009114961b5cd3146e8dad Mon Sep 17 00:00:00 2001 From: laineus Date: Thu, 2 Sep 2021 05:41:57 +0900 Subject: [PATCH] fix(runtime-core): properly merge unmounted and beforeUnmount options (#4447) --- packages/runtime-core/__tests__/apiOptions.spec.ts | 10 +++++++++- packages/runtime-core/src/componentOptions.ts | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/runtime-core/__tests__/apiOptions.spec.ts b/packages/runtime-core/__tests__/apiOptions.spec.ts index 9c50664b786..0dda6426565 100644 --- a/packages/runtime-core/__tests__/apiOptions.spec.ts +++ b/packages/runtime-core/__tests__/apiOptions.spec.ts @@ -1265,14 +1265,22 @@ describe('api: options', () => { test('this.$options[lifecycle-name]', () => { const mixin = { - mounted() {} + mounted() {}, + beforeUnmount() {}, + unmounted() {} } createApp({ mixins: [mixin], mounted() {}, + beforeUnmount() {}, + unmounted() {}, created() { expect(this.$options.mounted).toBeInstanceOf(Array) expect(this.$options.mounted.length).toBe(2) + expect(this.$options.beforeUnmount).toBeInstanceOf(Array) + expect(this.$options.beforeUnmount.length).toBe(2) + expect(this.$options.unmounted).toBeInstanceOf(Array) + expect(this.$options.unmounted.length).toBe(2) }, render: () => null }).mount(nodeOps.createElement('div')) diff --git a/packages/runtime-core/src/componentOptions.ts b/packages/runtime-core/src/componentOptions.ts index db12bfbcf51..41e02c5da0a 100644 --- a/packages/runtime-core/src/componentOptions.ts +++ b/packages/runtime-core/src/componentOptions.ts @@ -1015,7 +1015,9 @@ export const internalOptionMergeStrats: Record = { beforeUpdate: mergeAsArray, updated: mergeAsArray, beforeDestroy: mergeAsArray, + beforeUnmount: mergeAsArray, destroyed: mergeAsArray, + unmounted: mergeAsArray, activated: mergeAsArray, deactivated: mergeAsArray, errorCaptured: mergeAsArray,