Skip to content

Commit 30dbdc1

Browse files
refactor(compile-vapor): skip unnecessary closing tags in templates (#13667)
Co-authored-by: daiwei <daiwei521@126.com>
1 parent 8aa3714 commit 30dbdc1

37 files changed

Lines changed: 621 additions & 356 deletions

packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
exports[`compile > bindings 1`] = `
44
"import { txt as _txt, toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, template as _template } from 'vue';
5-
const t0 = _template("<div> </div>", true)
5+
const t0 = _template("<div> ", true)
66
77
export function render(_ctx, $props, $emit, $attrs, $slots) {
88
const n0 = t0()
@@ -14,7 +14,7 @@ export function render(_ctx, $props, $emit, $attrs, $slots) {
1414
1515
exports[`compile > custom directive > basic 1`] = `
1616
"import { resolveDirective as _resolveDirective, withVaporDirectives as _withVaporDirectives, template as _template } from 'vue';
17-
const t0 = _template("<div></div>", true)
17+
const t0 = _template("<div>", true)
1818
1919
export function render(_ctx) {
2020
const _directive_test = _resolveDirective("test")
@@ -27,7 +27,7 @@ export function render(_ctx) {
2727
2828
exports[`compile > custom directive > component 1`] = `
2929
"import { resolveComponent as _resolveComponent, resolveDirective as _resolveDirective, setInsertionState as _setInsertionState, createComponentWithFallback as _createComponentWithFallback, withVaporDirectives as _withVaporDirectives, createIf as _createIf, withVaporCtx as _withVaporCtx, template as _template } from 'vue';
30-
const t0 = _template("<div></div>")
30+
const t0 = _template("<div>")
3131
3232
export function render(_ctx) {
3333
const _component_Bar = _resolveComponent("Bar")
@@ -53,7 +53,7 @@ export function render(_ctx) {
5353
5454
exports[`compile > directives > custom directive > basic 1`] = `
5555
"import { withVaporDirectives as _withVaporDirectives, template as _template } from 'vue';
56-
const t0 = _template("<div></div>", true)
56+
const t0 = _template("<div>", true)
5757
5858
export function render(_ctx, $props, $emit, $attrs, $slots) {
5959
const n0 = t0()
@@ -64,7 +64,7 @@ export function render(_ctx, $props, $emit, $attrs, $slots) {
6464
6565
exports[`compile > directives > custom directive > binding value 1`] = `
6666
"import { withVaporDirectives as _withVaporDirectives, template as _template } from 'vue';
67-
const t0 = _template("<div></div>", true)
67+
const t0 = _template("<div>", true)
6868
6969
export function render(_ctx, $props, $emit, $attrs, $slots) {
7070
const n0 = t0()
@@ -75,7 +75,7 @@ export function render(_ctx, $props, $emit, $attrs, $slots) {
7575
7676
exports[`compile > directives > custom directive > dynamic parameters 1`] = `
7777
"import { withVaporDirectives as _withVaporDirectives, template as _template } from 'vue';
78-
const t0 = _template("<div></div>", true)
78+
const t0 = _template("<div>", true)
7979
8080
export function render(_ctx, $props, $emit, $attrs, $slots) {
8181
const n0 = t0()
@@ -86,7 +86,7 @@ export function render(_ctx, $props, $emit, $attrs, $slots) {
8686
8787
exports[`compile > directives > custom directive > modifiers 1`] = `
8888
"import { withVaporDirectives as _withVaporDirectives, template as _template } from 'vue';
89-
const t0 = _template("<div></div>", true)
89+
const t0 = _template("<div>", true)
9090
9191
export function render(_ctx, $props, $emit, $attrs, $slots) {
9292
const n0 = t0()
@@ -97,7 +97,7 @@ export function render(_ctx, $props, $emit, $attrs, $slots) {
9797
9898
exports[`compile > directives > custom directive > modifiers w/o binding 1`] = `
9999
"import { withVaporDirectives as _withVaporDirectives, template as _template } from 'vue';
100-
const t0 = _template("<div></div>", true)
100+
const t0 = _template("<div>", true)
101101
102102
export function render(_ctx, $props, $emit, $attrs, $slots) {
103103
const n0 = t0()
@@ -108,7 +108,7 @@ export function render(_ctx, $props, $emit, $attrs, $slots) {
108108
109109
exports[`compile > directives > custom directive > static parameters 1`] = `
110110
"import { withVaporDirectives as _withVaporDirectives, template as _template } from 'vue';
111-
const t0 = _template("<div></div>", true)
111+
const t0 = _template("<div>", true)
112112
113113
export function render(_ctx, $props, $emit, $attrs, $slots) {
114114
const n0 = t0()
@@ -119,7 +119,7 @@ export function render(_ctx, $props, $emit, $attrs, $slots) {
119119
120120
exports[`compile > directives > custom directive > static parameters and modifiers 1`] = `
121121
"import { withVaporDirectives as _withVaporDirectives, template as _template } from 'vue';
122-
const t0 = _template("<div></div>", true)
122+
const t0 = _template("<div>", true)
123123
124124
export function render(_ctx, $props, $emit, $attrs, $slots) {
125125
const n0 = t0()
@@ -130,7 +130,7 @@ export function render(_ctx, $props, $emit, $attrs, $slots) {
130130
131131
exports[`compile > directives > v-cloak > basic 1`] = `
132132
"import { template as _template } from 'vue';
133-
const t0 = _template("<div>test</div>", true)
133+
const t0 = _template("<div>test", true)
134134
135135
export function render(_ctx) {
136136
const n0 = t0()
@@ -140,7 +140,7 @@ export function render(_ctx) {
140140
141141
exports[`compile > directives > v-pre > basic 1`] = `
142142
"import { template as _template } from 'vue';
143-
const t0 = _template("<div :id=\\"foo\\"><Comp></Comp>{{ bar }}</div>", true)
143+
const t0 = _template("<div :id=\\"foo\\"><Comp></Comp>{{ bar }}", true)
144144
145145
export function render(_ctx, $props, $emit, $attrs, $slots) {
146146
const n0 = t0()
@@ -150,8 +150,8 @@ export function render(_ctx, $props, $emit, $attrs, $slots) {
150150
151151
exports[`compile > directives > v-pre > should not affect siblings after it 1`] = `
152152
"import { resolveComponent as _resolveComponent, setInsertionState as _setInsertionState, createComponentWithFallback as _createComponentWithFallback, child as _child, setProp as _setProp, toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, template as _template } from 'vue';
153-
const t0 = _template("<div :id=\\"foo\\"><Comp></Comp>{{ bar }}</div>")
154-
const t1 = _template("<div> </div>")
153+
const t0 = _template("<div :id=\\"foo\\"><Comp></Comp>{{ bar }}")
154+
const t1 = _template("<div> ")
155155
156156
export function render(_ctx, $props, $emit, $attrs, $slots) {
157157
const _component_Comp = _resolveComponent("Comp")
@@ -181,7 +181,7 @@ export function render(_ctx) {
181181
182182
exports[`compile > dynamic root nodes and interpolation 1`] = `
183183
"import { txt as _txt, createInvoker as _createInvoker, setProp as _setProp, toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, delegateEvents as _delegateEvents, template as _template } from 'vue';
184-
const t0 = _template("<button> </button>", true)
184+
const t0 = _template("<button> ", true)
185185
_delegateEvents("click")
186186
187187
export function render(_ctx) {
@@ -199,7 +199,7 @@ export function render(_ctx) {
199199
200200
exports[`compile > execution order > basic 1`] = `
201201
"import { txt as _txt, setProp as _setProp, toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, template as _template } from 'vue';
202-
const t0 = _template("<div> </div>", true)
202+
const t0 = _template("<div> ", true)
203203
204204
export function render(_ctx) {
205205
const n0 = t0()
@@ -214,8 +214,8 @@ export function render(_ctx) {
214214
215215
exports[`compile > execution order > setInsertionState > next, child and nthChild should be above the setInsertionState 1`] = `
216216
"import { resolveComponent as _resolveComponent, child as _child, next as _next, setInsertionState as _setInsertionState, createComponentWithFallback as _createComponentWithFallback, nthChild as _nthChild, createIf as _createIf, setProp as _setProp, renderEffect as _renderEffect, template as _template } from 'vue';
217-
const t0 = _template("<div></div>")
218-
const t1 = _template("<div><div></div><!><div></div><!><div><button></button></div></div>", true)
217+
const t0 = _template("<div>")
218+
const t1 = _template("<div><div></div><!><div></div><!><div><button>", true)
219219
220220
export function render(_ctx) {
221221
const _component_Comp = _resolveComponent("Comp")
@@ -238,7 +238,7 @@ export function render(_ctx) {
238238
239239
exports[`compile > execution order > with insertionState 1`] = `
240240
"import { resolveComponent as _resolveComponent, child as _child, setInsertionState as _setInsertionState, createSlot as _createSlot, createComponentWithFallback as _createComponentWithFallback, template as _template } from 'vue';
241-
const t0 = _template("<div><div></div></div>", true)
241+
const t0 = _template("<div><div>", true)
242242
243243
export function render(_ctx) {
244244
const _component_Comp = _resolveComponent("Comp")
@@ -254,7 +254,7 @@ export function render(_ctx) {
254254
255255
exports[`compile > execution order > with v-once 1`] = `
256256
"import { child as _child, next as _next, nthChild as _nthChild, txt as _txt, toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, template as _template } from 'vue';
257-
const t0 = _template("<div><span> </span> <br> </div>", true)
257+
const t0 = _template("<div><span> </span> <br> ", true)
258258
259259
export function render(_ctx) {
260260
const n3 = t0()
@@ -292,7 +292,7 @@ exports[`compile > expression parsing > v-bind 1`] = `
292292
293293
exports[`compile > expression parsing > v-for 1`] = `
294294
"import { createFor as _createFor, template as _template } from 'vue';
295-
const t0 = _template("<div></div>")
295+
const t0 = _template("<div>")
296296
297297
export function render(_ctx) {
298298
const n0 = _createFor(() => (_ctx.a.b), (_for_item0, _for_key0, _for_index0) => {
@@ -305,7 +305,7 @@ export function render(_ctx) {
305305
306306
exports[`compile > expression parsing > v-on multi statements 1`] = `
307307
"import { createInvoker as _createInvoker, delegateEvents as _delegateEvents, template as _template } from 'vue';
308-
const t0 = _template("<div></div>", true)
308+
const t0 = _template("<div>", true)
309309
_delegateEvents("click")
310310
311311
export function render(_ctx) {
@@ -334,9 +334,9 @@ export function render(_ctx) {
334334
335335
exports[`compile > fragment 1`] = `
336336
"import { template as _template } from 'vue';
337-
const t0 = _template("<p></p>")
338-
const t1 = _template("<span></span>")
339-
const t2 = _template("<div></div>")
337+
const t0 = _template("<p>")
338+
const t1 = _template("<span>")
339+
const t2 = _template("<div>")
340340
341341
export function render(_ctx) {
342342
const n0 = t0()
@@ -348,7 +348,7 @@ export function render(_ctx) {
348348
349349
exports[`compile > gen unique helper alias > should avoid conflicts with existing variable names 1`] = `
350350
"import { txt as _txt2, toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, template as _template } from 'vue';
351-
const t0 = _template("<div> </div>", true)
351+
const t0 = _template("<div> ", true)
352352
353353
export function render(_ctx, $props, $emit, $attrs, $slots) {
354354
const n0 = t0()
@@ -360,7 +360,7 @@ export function render(_ctx, $props, $emit, $attrs, $slots) {
360360
361361
exports[`compile > gen unique node variables > should avoid binding conflicts for node vars (n*/x*) 1`] = `
362362
"import { txt as _txt, toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, template as _template } from 'vue';
363-
const t0 = _template("<div> </div>")
363+
const t0 = _template("<div> ")
364364
365365
export function render(_ctx, $props, $emit, $attrs, $slots) {
366366
const n1 = t0()
@@ -378,7 +378,7 @@ export function render(_ctx, $props, $emit, $attrs, $slots) {
378378
379379
exports[`compile > gen unique node variables > should bump old ref var (r*) on conflict 1`] = `
380380
"import { createTemplateRefSetter as _createTemplateRefSetter, renderEffect as _renderEffect, template as _template } from 'vue';
381-
const t0 = _template("<div></div>")
381+
const t0 = _template("<div>")
382382
383383
export function render(_ctx, $props, $emit, $attrs, $slots) {
384384
const _setTemplateRef = _createTemplateRefSetter()
@@ -400,7 +400,7 @@ export function render(_ctx, $props, $emit, $attrs, $slots) {
400400
401401
exports[`compile > gen unique node variables > should bump placeholder var (p*) on conflict 1`] = `
402402
"import { child as _child, setProp as _setProp, renderEffect as _renderEffect, template as _template } from 'vue';
403-
const t0 = _template("<div><div><div><span></span></div></div></div>", true)
403+
const t0 = _template("<div><div><div><span>", true)
404404
405405
export function render(_ctx, $props, $emit, $attrs, $slots) {
406406
const n1 = t0()
@@ -414,9 +414,9 @@ export function render(_ctx, $props, $emit, $attrs, $slots) {
414414
415415
exports[`compile > gen unique node variables > should bump template var (t*) on conflict 1`] = `
416416
"import { template as _template } from 'vue';
417-
const t1 = _template("<div></div>")
418-
const t3 = _template("<span></span>")
419-
const t4 = _template("<p></p>")
417+
const t1 = _template("<div>")
418+
const t3 = _template("<span>")
419+
const t4 = _template("<p>")
420420
421421
export function render(_ctx, $props, $emit, $attrs, $slots) {
422422
const n0 = t1()
@@ -439,7 +439,7 @@ export function render(_ctx) {
439439
440440
exports[`compile > static template 1`] = `
441441
"import { template as _template } from 'vue';
442-
const t0 = _template("<div><p>hello</p><input><span></span></div>", true)
442+
const t0 = _template("<div><p>hello</p><input><span>", true)
443443
444444
export function render(_ctx) {
445445
const n0 = t0()

packages/compiler-vapor/__tests__/__snapshots__/scopeId.spec.ts.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
exports[`scopeId compiler support > should wrap default slot 1`] = `
44
"import { resolveComponent as _resolveComponent, createComponentWithFallback as _createComponentWithFallback, template as _template } from 'vue';
5-
const t0 = _template("<div></div>")
5+
const t0 = _template("<div>")
66
77
export function render(_ctx) {
88
const _component_Child = _resolveComponent("Child")
@@ -18,7 +18,7 @@ export function render(_ctx) {
1818
1919
exports[`scopeId compiler support > should wrap dynamic slots 1`] = `
2020
"import { resolveComponent as _resolveComponent, createForSlots as _createForSlots, createComponentWithFallback as _createComponentWithFallback, template as _template } from 'vue';
21-
const t0 = _template("<div test></div>")
21+
const t0 = _template("<div test>")
2222
2323
export function render(_ctx) {
2424
const _component_Child = _resolveComponent("Child")
@@ -49,7 +49,7 @@ export function render(_ctx) {
4949
exports[`scopeId compiler support > should wrap named slots 1`] = `
5050
"import { resolveComponent as _resolveComponent, toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, createComponentWithFallback as _createComponentWithFallback, template as _template } from 'vue';
5151
const t0 = _template(" ")
52-
const t1 = _template("<div test></div>")
52+
const t1 = _template("<div test>")
5353
5454
export function render(_ctx) {
5555
const _component_Child = _resolveComponent("Child")

0 commit comments

Comments
 (0)