]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(runtime-core): properly merge unmounted and beforeUnmount options (#4447)
authorlaineus <lainen000@gmail.com>
Wed, 1 Sep 2021 20:41:57 +0000 (05:41 +0900)
committerGitHub <noreply@github.com>
Wed, 1 Sep 2021 20:41:57 +0000 (16:41 -0400)
packages/runtime-core/__tests__/apiOptions.spec.ts
packages/runtime-core/src/componentOptions.ts

index 9c50664b786e4df32d53bb831b1d4090afaf2483..0dda642656541c1a1894dfadabc8eec5ad4fe8a8 100644 (file)
@@ -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'))
index db12bfbcf51b8f525e7b4e9e68df2c30bd064785..41e02c5da0a63c6368c5355c67809f5d9e7efd0e 100644 (file)
@@ -1015,7 +1015,9 @@ export const internalOptionMergeStrats: Record<string, Function> = {
   beforeUpdate: mergeAsArray,
   updated: mergeAsArray,
   beforeDestroy: mergeAsArray,
+  beforeUnmount: mergeAsArray,
   destroyed: mergeAsArray,
+  unmounted: mergeAsArray,
   activated: mergeAsArray,
   deactivated: mergeAsArray,
   errorCaptured: mergeAsArray,