From 774d8f10f381c2812a9164edcf75610ef7ef566c Mon Sep 17 00:00:00 2001
From: weidehai <243395655@qq.com>
Date: Thu, 13 Oct 2022 22:43:58 +0800
Subject: [PATCH 1/5] fix(runtime-core): check extends render when
convertLegacyRenderFn (#6860)
---
packages/runtime-core/src/compat/renderFn.ts | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/packages/runtime-core/src/compat/renderFn.ts b/packages/runtime-core/src/compat/renderFn.ts
index 4cf2fc226cf..e91bc8951f0 100644
--- a/packages/runtime-core/src/compat/renderFn.ts
+++ b/packages/runtime-core/src/compat/renderFn.ts
@@ -38,10 +38,13 @@ import {
isCompatEnabled
} from './compatConfig'
import { compatModelEventPrefix } from './componentVModel'
+import { resolveMergedOptions } from '../componentOptions'
export function convertLegacyRenderFn(instance: ComponentInternalInstance) {
const Component = instance.type as ComponentOptions
- const render = Component.render as InternalRenderFunction | undefined
+ const render = (Component.render || resolveMergedOptions(instance).render) as
+ | InternalRenderFunction
+ | undefined
// v3 runtime compiled, or already checked / wrapped
if (!render || render._rc || render._compatChecked || render._compatWrapped) {
From d6c92f6a86e205660c7b85dc2ea8e78c07865632 Mon Sep 17 00:00:00 2001
From: weidehai <243395655@qq.com>
Date: Fri, 14 Oct 2022 00:10:35 +0800
Subject: [PATCH 2/5] fix(runtime-core): add test(#6860)
---
packages/vue-compat/__tests__/renderFn.spec.ts | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/packages/vue-compat/__tests__/renderFn.spec.ts b/packages/vue-compat/__tests__/renderFn.spec.ts
index 73876b4cf22..b6abf87fbd1 100644
--- a/packages/vue-compat/__tests__/renderFn.spec.ts
+++ b/packages/vue-compat/__tests__/renderFn.spec.ts
@@ -251,4 +251,19 @@ describe('compat: render function', () => {
}).$mount()
expect(vm.$el.outerHTML).toBe(`
hello
`)
})
+ test('convert extends render Fn', () => {
+ const BaseComponent = {
+ render: (h: any) => h('div', null, ['hello'])
+ }
+ const ExtendComponent = {
+ extends: BaseComponent
+ }
+ const vm = new Vue({
+ components: { ExtendComponent },
+ render(h: any) {
+ return h('extend-component', null, [])
+ }
+ }).$mount()
+ expect(vm.$el.outerHTML).toBe(`hello
`)
+ })
})
From 64e32e79bbd02c0b74c793d7201d7cf32f72813b Mon Sep 17 00:00:00 2001
From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com>
Date: Tue, 22 Oct 2024 07:07:58 +0000
Subject: [PATCH 3/5] [autofix.ci] apply automated fixes
---
packages/vue-compat/__tests__/renderFn.spec.ts | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/packages/vue-compat/__tests__/renderFn.spec.ts b/packages/vue-compat/__tests__/renderFn.spec.ts
index af67908e738..df094708905 100644
--- a/packages/vue-compat/__tests__/renderFn.spec.ts
+++ b/packages/vue-compat/__tests__/renderFn.spec.ts
@@ -254,16 +254,16 @@ describe('compat: render function', () => {
})
test('convert extends render Fn', () => {
const BaseComponent = {
- render: (h: any) => h('div', null, ['hello'])
+ render: (h: any) => h('div', null, ['hello']),
}
const ExtendComponent = {
- extends: BaseComponent
+ extends: BaseComponent,
}
const vm = new Vue({
components: { ExtendComponent },
render(h: any) {
return h('extend-component', null, [])
- }
+ },
}).$mount()
expect(vm.$el.outerHTML).toBe(`hello
`)
})
From 3f51e7129ab3a1090a2788a834c213548a4355f7 Mon Sep 17 00:00:00 2001
From: edison
Date: Tue, 22 Oct 2024 15:15:05 +0800
Subject: [PATCH 4/5] Update renderFn.spec.ts
---
packages/vue-compat/__tests__/renderFn.spec.ts | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/packages/vue-compat/__tests__/renderFn.spec.ts b/packages/vue-compat/__tests__/renderFn.spec.ts
index df094708905..cd1b7b74482 100644
--- a/packages/vue-compat/__tests__/renderFn.spec.ts
+++ b/packages/vue-compat/__tests__/renderFn.spec.ts
@@ -252,7 +252,8 @@ describe('compat: render function', () => {
expect(vm.$el).toBeInstanceOf(HTMLDivElement)
expect(vm.$el.outerHTML).toBe(`hello
`)
})
- test('convert extends render Fn', () => {
+
+ test('extends render fn', () => {
const BaseComponent = {
render: (h: any) => h('div', null, ['hello']),
}
From 39c23bb4535729be60b14ba1a967a511712de193 Mon Sep 17 00:00:00 2001
From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com>
Date: Tue, 22 Oct 2024 07:15:50 +0000
Subject: [PATCH 5/5] [autofix.ci] apply automated fixes
---
packages/vue-compat/__tests__/renderFn.spec.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/vue-compat/__tests__/renderFn.spec.ts b/packages/vue-compat/__tests__/renderFn.spec.ts
index cd1b7b74482..383f6f5b154 100644
--- a/packages/vue-compat/__tests__/renderFn.spec.ts
+++ b/packages/vue-compat/__tests__/renderFn.spec.ts
@@ -252,7 +252,7 @@ describe('compat: render function', () => {
expect(vm.$el).toBeInstanceOf(HTMLDivElement)
expect(vm.$el.outerHTML).toBe(`hello
`)
})
-
+
test('extends render fn', () => {
const BaseComponent = {
render: (h: any) => h('div', null, ['hello']),