MCPcopy
hub / github.com/vuejs/core / convertLegacyRenderFn

Function convertLegacyRenderFn

packages/runtime-core/src/compat/renderFn.ts:42–70  ·  view source on GitHub ↗
(
  instance: ComponentInternalInstance,
)

Source from the content-addressed store, hash-verified

40import { compatModelEventPrefix } from './componentVModel'
41
42export function convertLegacyRenderFn(
43 instance: ComponentInternalInstance,
44): void {
45 const Component = instance.type as ComponentOptions
46 const render = Component.render as InternalRenderFunction | undefined
47
48 // v3 runtime compiled, or already checked / wrapped
49 if (!render || render._rc || render._compatChecked || render._compatWrapped) {
50 return
51 }
52
53 if (render.length >= 2) {
54 // v3 pre-compiled function, since v2 render functions never need more than
55 // 2 arguments, and v2 functional render functions would have already been
56 // normalized into v3 functional components
57 render._compatChecked = true
58 return
59 }
60
61 // v2 render function, try to provide compat
62 if (checkCompatEnabled(DeprecationTypes.RENDER_FUNCTION, instance)) {
63 const wrapped = (Component.render = function compatRender() {
64 // @ts-expect-error
65 return render.call(this, compatH)
66 })
67 // @ts-expect-error
68 wrapped._compatWrapped = true
69 }
70}
71
72interface LegacyVNodeProps {
73 key?: string | number

Callers 1

finishComponentSetupFunction · 0.90

Calls 1

checkCompatEnabledFunction · 0.90

Tested by

no test coverage detected