diff --git a/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap b/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap
index b10a98d32cb..213a3eb0b8a 100644
--- a/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap
+++ b/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap
@@ -4,7 +4,7 @@ exports[`compile > bindings 1`] = `
"import { child as _child, toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, template as _template } from 'vue';
const t0 = _template("
", true)
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
const x0 = _child(n0)
_renderEffect(() => _setText(x0, "count is " + _toDisplayString(_ctx.count) + "."))
@@ -55,7 +55,7 @@ exports[`compile > directives > custom directive > basic 1`] = `
"import { withVaporDirectives as _withVaporDirectives, template as _template } from 'vue';
const t0 = _template("", true)
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
_withVaporDirectives(n0, [[_ctx.vExample]])
return n0
@@ -66,7 +66,7 @@ exports[`compile > directives > custom directive > binding value 1`] = `
"import { withVaporDirectives as _withVaporDirectives, template as _template } from 'vue';
const t0 = _template("", true)
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
_withVaporDirectives(n0, [[_ctx.vExample, () => _ctx.msg]])
return n0
@@ -77,7 +77,7 @@ exports[`compile > directives > custom directive > dynamic parameters 1`] = `
"import { withVaporDirectives as _withVaporDirectives, template as _template } from 'vue';
const t0 = _template("", true)
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
_withVaporDirectives(n0, [[_ctx.vExample, () => _ctx.msg, _ctx.foo]])
return n0
@@ -88,7 +88,7 @@ exports[`compile > directives > custom directive > modifiers 1`] = `
"import { withVaporDirectives as _withVaporDirectives, template as _template } from 'vue';
const t0 = _template("", true)
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
_withVaporDirectives(n0, [[_ctx.vExample, () => _ctx.msg, void 0, { bar: true }]])
return n0
@@ -99,7 +99,7 @@ exports[`compile > directives > custom directive > modifiers w/o binding 1`] = `
"import { withVaporDirectives as _withVaporDirectives, template as _template } from 'vue';
const t0 = _template("", true)
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
_withVaporDirectives(n0, [[_ctx.vExample, void 0, void 0, { "foo-bar": true }]])
return n0
@@ -110,7 +110,7 @@ exports[`compile > directives > custom directive > static parameters 1`] = `
"import { withVaporDirectives as _withVaporDirectives, template as _template } from 'vue';
const t0 = _template("", true)
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
_withVaporDirectives(n0, [[_ctx.vExample, () => _ctx.msg, "foo"]])
return n0
@@ -121,7 +121,7 @@ exports[`compile > directives > custom directive > static parameters and modifie
"import { withVaporDirectives as _withVaporDirectives, template as _template } from 'vue';
const t0 = _template("", true)
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
_withVaporDirectives(n0, [[_ctx.vExample, () => _ctx.msg, "foo", { bar: true }]])
return n0
@@ -142,7 +142,7 @@ exports[`compile > directives > v-pre > basic 1`] = `
"import { template as _template } from 'vue';
const t0 = _template("{{ bar }}
", true)
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
return n0
}"
@@ -153,7 +153,7 @@ exports[`compile > directives > v-pre > should not affect siblings after it 1`]
const t0 = _template("{{ bar }}
")
const t1 = _template("
")
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const _component_Comp = _resolveComponent("Comp")
const n0 = t0()
const n3 = t1()
diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/expression.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/expression.spec.ts.snap
index 7e157236bf9..1ed8ea7bdb1 100644
--- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/expression.spec.ts.snap
+++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/expression.spec.ts.snap
@@ -15,7 +15,7 @@ exports[`compiler: expression > props 1`] = `
"import { toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, template as _template } from 'vue';
const t0 = _template(" ")
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
_renderEffect(() => _setText(n0, _toDisplayString($props.foo)))
return n0
@@ -26,7 +26,7 @@ exports[`compiler: expression > props aliased 1`] = `
"import { toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, template as _template } from 'vue';
const t0 = _template(" ")
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
_renderEffect(() => _setText(n0, _toDisplayString($props['bar'])))
return n0
diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/transformElement.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/transformElement.spec.ts.snap
index 7aa56aa9c2f..cd3a4d8e7f5 100644
--- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/transformElement.spec.ts.snap
+++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/transformElement.spec.ts.snap
@@ -17,7 +17,7 @@ export function render(_ctx) {
exports[`compiler: element transform > component > do not resolve component from non-script-setup bindings 1`] = `
"import { resolveComponent as _resolveComponent, createComponentWithFallback as _createComponentWithFallback } from 'vue';
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const _component_Example = _resolveComponent("Example")
const n0 = _createComponentWithFallback(_component_Example, null, null, true)
return n0
@@ -28,7 +28,7 @@ exports[`compiler: element transform > component > generate multi root component
"import { createComponent as _createComponent, template as _template } from 'vue';
const t0 = _template("123")
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = _createComponent(_ctx.Comp)
const n1 = t0()
return [n0, n1]
@@ -38,7 +38,7 @@ export function render(_ctx, $props, $emit, $attrs, $slots) {
exports[`compiler: element transform > component > generate single root component 1`] = `
"import { createComponent as _createComponent } from 'vue';
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = _createComponent(_ctx.Comp, null, null, true)
return n0
}"
@@ -71,7 +71,7 @@ exports[`compiler: element transform > component > resolve component from setup
exports[`compiler: element transform > component > resolve component from setup bindings 1`] = `
"import { createComponent as _createComponent } from 'vue';
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = _createComponent(_ctx.Example, null, null, true)
return n0
}"
@@ -97,7 +97,7 @@ exports[`compiler: element transform > component > resolve namespaced component
exports[`compiler: element transform > component > resolve namespaced component from props bindings (non-inline) 1`] = `
"import { createComponent as _createComponent } from 'vue';
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = _createComponent(_ctx.Foo.Example, null, null, true)
return n0
}"
@@ -113,7 +113,7 @@ exports[`compiler: element transform > component > resolve namespaced component
exports[`compiler: element transform > component > resolve namespaced component from setup bindings 1`] = `
"import { createComponent as _createComponent } from 'vue';
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = _createComponent(_ctx.Foo.Example, null, null, true)
return n0
}"
@@ -191,7 +191,7 @@ export function render(_ctx) {
exports[`compiler: element transform > component > v-for on component should not mark as single root 1`] = `
"import { createComponent as _createComponent, createFor as _createFor } from 'vue';
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = _createFor(() => (_ctx.items), (_for_item0) => {
const n2 = _createComponent(_ctx.Comp)
return n2
diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vBind.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vBind.spec.ts.snap
index 4ea0db55fe5..ec9177bea92 100644
--- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vBind.spec.ts.snap
+++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vBind.spec.ts.snap
@@ -635,7 +635,7 @@ exports[`compiler v-bind > with constant value 1`] = `
"import { setProp as _setProp, template as _template } from 'vue';
const t0 = _template("", true)
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
_setProp(n0, "a", void 0)
_setProp(n0, "b", 1 > 2)
diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vHtml.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vHtml.spec.ts.snap
index ecf886d7cbb..83b27f7dac4 100644
--- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vHtml.spec.ts.snap
+++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vHtml.spec.ts.snap
@@ -4,7 +4,7 @@ exports[`v-html > should convert v-html to innerHTML 1`] = `
"import { setHtml as _setHtml, renderEffect as _renderEffect, template as _template } from 'vue';
const t0 = _template("", true)
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
_renderEffect(() => _setHtml(n0, _ctx.code))
return n0
diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vModel.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vModel.spec.ts.snap
index 5ef064974c0..bb1ec0fdc89 100644
--- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vModel.spec.ts.snap
+++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vModel.spec.ts.snap
@@ -162,7 +162,7 @@ exports[`compiler: vModel transform > should support member expression 1`] = `
"import { applyTextModel as _applyTextModel, template as _template } from 'vue';
const t0 = _template("")
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
const n1 = t0()
const n2 = t0()
diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vOn.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vOn.spec.ts.snap
index e7a2b30e69c..b6e61a96d80 100644
--- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vOn.spec.ts.snap
+++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vOn.spec.ts.snap
@@ -83,7 +83,7 @@ const t2 = _template("")
const t3 = _template("")
_delegateEvents("click", "contextmenu", "mouseup", "keyup")
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
const n1 = t1()
const n2 = t0()
@@ -143,7 +143,7 @@ exports[`v-on > expression with type 1`] = `
const t0 = _template("", true)
_delegateEvents("click")
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
n0.$evtclick = e => _ctx.handleClick(e)
return n0
@@ -479,7 +479,7 @@ exports[`v-on > simple expression 1`] = `
const t0 = _template("", true)
_delegateEvents("click")
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
n0.$evtclick = _ctx.handleClick
return n0
diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vOnce.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vOnce.spec.ts.snap
index b6107d5a1a1..9f0cc644d6c 100644
--- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vOnce.spec.ts.snap
+++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vOnce.spec.ts.snap
@@ -15,7 +15,7 @@ exports[`compiler: v-once > basic 1`] = `
"import { child as _child, next as _next, toDisplayString as _toDisplayString, setText as _setText, setClass as _setClass, template as _template } from 'vue';
const t0 = _template("
", true)
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n2 = t0()
const n0 = _child(n2)
const n1 = _next(n0)
diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vText.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vText.spec.ts.snap
index 9a3b88acba3..6a83d31f1a8 100644
--- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vText.spec.ts.snap
+++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vText.spec.ts.snap
@@ -4,7 +4,7 @@ exports[`v-text > should convert v-text to setText 1`] = `
"import { child as _child, toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, template as _template } from 'vue';
const t0 = _template("
", true)
-export function render(_ctx, $props, $emit, $attrs, $slots) {
+export function render(_ctx, $props) {
const n0 = t0()
const x0 = _child(n0)
_renderEffect(() => _setText(x0, _toDisplayString(_ctx.str)))
diff --git a/packages/compiler-vapor/src/generate.ts b/packages/compiler-vapor/src/generate.ts
index 193a0f5da77..cc0bfdcaca8 100644
--- a/packages/compiler-vapor/src/generate.ts
+++ b/packages/compiler-vapor/src/generate.ts
@@ -112,7 +112,7 @@ export function generate(
const args = ['_ctx']
if (bindingMetadata && !inline) {
// binding optimization args
- args.push('$props', '$emit', '$attrs', '$slots')
+ args.push('$props')
}
const signature = (options.isTS ? args.map(arg => `${arg}: any`) : args).join(
', ',