+
+
+
+ {{ testData.name }}
+
+
+
+
+
diff --git a/packages/vue-generator/test/testcases/sfc/slotParams/page.schema.json b/packages/vue-generator/test/testcases/sfc/slotParams/page.schema.json
new file mode 100644
index 0000000000..316f5d6f14
--- /dev/null
+++ b/packages/vue-generator/test/testcases/sfc/slotParams/page.schema.json
@@ -0,0 +1,41 @@
+{
+ "state": {},
+ "methods": {},
+ "componentName": "Page",
+ "css": "",
+ "props": {},
+ "lifeCycles": {},
+ "children": [
+ {
+ "componentName": "BlockSlotParams",
+ "props": {},
+ "id": "63623253",
+ "componentType": "Block",
+ "children": [
+ {
+ "id": "54396632",
+ "componentName": "Template",
+ "props": {
+ "slot": {
+ "name": "test",
+ "params": ["testData"]
+ }
+ },
+ "children": [
+ {
+ "id": "5242615f",
+ "componentName": "Text",
+ "props": {
+ "text": {
+ "type": "JSExpression",
+ "value": "testData.name"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "fileName": "slotParamsTest"
+}
diff --git a/packages/vue-generator/test/testcases/sfc/slotParams/slotParams.test.js b/packages/vue-generator/test/testcases/sfc/slotParams/slotParams.test.js
new file mode 100644
index 0000000000..9d7efa124a
--- /dev/null
+++ b/packages/vue-generator/test/testcases/sfc/slotParams/slotParams.test.js
@@ -0,0 +1,19 @@
+import { expect, test } from 'vitest'
+import { genSFCWithDefaultPlugin } from '@/generator/vue/sfc'
+import blockSchema from './block.schema.json'
+import pageSchema from './page.schema.json'
+import { formatCode } from '@/utils/formatCode'
+
+test('should generate slot and pass testData params', async () => {
+ const res = genSFCWithDefaultPlugin(blockSchema, [])
+ const formattedCode = formatCode(res, 'vue')
+
+ await expect(formattedCode).toMatchFileSnapshot('./expected/slotParamsBlock.vue')
+})
+
+test('should generate slot params', async () => {
+ const res = genSFCWithDefaultPlugin(pageSchema, [])
+ const formattedCode = formatCode(res, 'vue')
+
+ await expect(formattedCode).toMatchFileSnapshot('./expected/slotParamsPage.vue')
+})