From 7db74879ad92eb0f6017cfdd0409e2e2724e5f51 Mon Sep 17 00:00:00 2001 From: CathLee <447932704@qq.com> Date: Tue, 20 Feb 2024 22:50:56 +0800 Subject: [PATCH 1/3] test(compiler-translate):test close tag with component tagType --- .../__tests__/__snapshots__/compile.spec.ts.snap | 4 ++-- packages/compiler-vapor/__tests__/compile.spec.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap b/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap index 1884981fd..59f6f69fc 100644 --- a/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap +++ b/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap @@ -130,7 +130,7 @@ export function render(_ctx) { exports[`compile > directives > v-pre > self-closing v-pre 1`] = ` "import { children as _children, createTextNode as _createTextNode, append as _append, renderEffect as _renderEffect, setText as _setText, setDynamicProp as _setDynamicProp, template as _template } from 'vue/vapor'; -const t0 = _template("
") +const t0 = _template("
") export function render(_ctx) { const n0 = t0() @@ -145,7 +145,7 @@ export function render(_ctx) { exports[`compile > directives > v-pre > should not affect siblings after it 1`] = ` "import { children as _children, createTextNode as _createTextNode, append as _append, renderEffect as _renderEffect, setText as _setText, setDynamicProp as _setDynamicProp, template as _template } from 'vue/vapor'; -const t0 = _template("
{{ bar }}
") +const t0 = _template("
{{ bar }}
") export function render(_ctx) { const n0 = t0() diff --git a/packages/compiler-vapor/__tests__/compile.spec.ts b/packages/compiler-vapor/__tests__/compile.spec.ts index 23ba98882..c9684c9a3 100644 --- a/packages/compiler-vapor/__tests__/compile.spec.ts +++ b/packages/compiler-vapor/__tests__/compile.spec.ts @@ -96,7 +96,7 @@ describe('compile', () => { ) expect(code).toMatchSnapshot() - expect(code).contains('
') + expect(code).contains('
') // Waiting for TODO, There should be more here. }) }) From 4533af4e234079e06bbb832db319640eb153047a Mon Sep 17 00:00:00 2001 From: CathLee <447932704@qq.com> Date: Tue, 20 Feb 2024 22:53:29 +0800 Subject: [PATCH 2/3] feat(compiler-translate)remove unnecessary close tag in componet tagType --- packages/compiler-vapor/src/transforms/transformElement.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/compiler-vapor/src/transforms/transformElement.ts b/packages/compiler-vapor/src/transforms/transformElement.ts index 8aed3a9e3..a9a10a3aa 100644 --- a/packages/compiler-vapor/src/transforms/transformElement.ts +++ b/packages/compiler-vapor/src/transforms/transformElement.ts @@ -61,7 +61,11 @@ export const transformElement: NodeTransform = (node, context) => { // TODO remove unnecessary close tag, e.g. if it's the last element of the template if (!isVoidTag(tag)) { - context.template += `` + if (node.tagType === ElementTypes.COMPONENT) { + context.template = `<${tag}/>` + } else { + context.template += `` + } } } } From f2da119f8bf815da54676a810fee73d1a664edd1 Mon Sep 17 00:00:00 2001 From: CathLee <447932704@qq.com> Date: Wed, 21 Feb 2024 16:35:03 +0800 Subject: [PATCH 3/3] test:component close tag test --- .../__tests__/__snapshots__/compile.spec.ts.snap | 10 ++++++++++ packages/compiler-vapor/__tests__/compile.spec.ts | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap b/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap index 59f6f69fc..29eced80f 100644 --- a/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap +++ b/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap @@ -12,6 +12,16 @@ export function render(_ctx) { }" `; +exports[`compile > component close tag 1`] = ` +"import { template as _template } from 'vue/vapor'; +const t0 = _template("
") + +export function render(_ctx) { + const n0 = t0() + return n0 +}" +`; + exports[`compile > custom directive > basic 1`] = ` "import { children as _children, resolveDirective as _resolveDirective, withDirectives as _withDirectives, template as _template } from 'vue/vapor'; const t0 = _template("
") diff --git a/packages/compiler-vapor/__tests__/compile.spec.ts b/packages/compiler-vapor/__tests__/compile.spec.ts index c9684c9a3..0d81ff838 100644 --- a/packages/compiler-vapor/__tests__/compile.spec.ts +++ b/packages/compiler-vapor/__tests__/compile.spec.ts @@ -21,6 +21,11 @@ describe('compile', () => { ) expect(code).matchSnapshot() }) + test('component close tag', () => { + const code = compile(`
`) + expect(code).matchSnapshot() + expect(code).contains(JSON.stringify('
')) + }) test('dynamic root', () => { const code = compile(`{{ 1 }}{{ 2 }}`)