]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
chore: update codegen
authordaiwei <daiwei521@126.com>
Sat, 8 Feb 2025 07:55:43 +0000 (15:55 +0800)
committerdaiwei <daiwei521@126.com>
Sat, 8 Feb 2025 07:55:43 +0000 (15:55 +0800)
packages/compiler-ssr/__tests__/ssrTransitionGroup.spec.ts
packages/compiler-ssr/src/ssrCodegenTransform.ts
packages/compiler-ssr/src/transforms/ssrTransformTransitionGroup.ts

index 99a9933f1e65a9afb647684ca68685ea6168eaac..cd98d8c7e2af0a727fa8031e668a79fca83b60a7 100644 (file)
@@ -11,16 +11,17 @@ describe('transition-group', () => {
       "const { ssrRenderList: _ssrRenderList } = require("vue/server-renderer")
 
       return function ssrRender(_ctx, _push, _parent, _attrs) {
-        if (_attrs && _attrs.tag) {
-          _push(\`<\${_attrs.tag}>\`)
+        const _tag = _attrs && _attrs.tag
+        if (_tag) {
+          _push(\`<\${_tag}>\`)
         }
         _push(\`<!--[-->\`)
         _ssrRenderList(_ctx.list, (i) => {
           _push(\`<div></div>\`)
         })
         _push(\`<!--]-->\`)
-        if (_attrs && _attrs.tag) {
-          _push(\`</\${_attrs.tag}>\`)
+        if (_tag) {
+          _push(\`</\${_tag}>\`)
         }
       }"
     `)
@@ -120,8 +121,9 @@ describe('transition-group', () => {
       "const { ssrRenderList: _ssrRenderList } = require("vue/server-renderer")
 
       return function ssrRender(_ctx, _push, _parent, _attrs) {
-        if (_attrs && _attrs.tag) {
-          _push(\`<\${_attrs.tag}>\`)
+        const _tag = _attrs && _attrs.tag
+        if (_tag) {
+          _push(\`<\${_tag}>\`)
         }
         _push(\`<!--[-->\`)
         _ssrRenderList(10, (i) => {
@@ -134,8 +136,8 @@ describe('transition-group', () => {
           _push(\`<div>ok</div>\`)
         }
         _push(\`<!--]-->\`)
-        if (_attrs && _attrs.tag) {
-          _push(\`</\${_attrs.tag}>\`)
+        if (_tag) {
+          _push(\`</\${_tag}>\`)
         }
       }"
     `)
index 536cbb5c1e97342f7d2aa2d04ddae688e1339736..0d09887317f849c11dd4b0897e54614a017fd7cc 100644 (file)
@@ -4,6 +4,7 @@ import {
   type CompilerError,
   type CompilerOptions,
   ElementTypes,
+  type ExpressionNode,
   type IfStatement,
   type JSChildNode,
   NodeTypes,
@@ -84,7 +85,7 @@ export interface SSRTransformContext {
   onError: (error: CompilerError) => void
   helper<T extends symbol>(name: T): T
   pushStringPart(part: TemplateLiteral['elements'][0]): void
-  pushStatement(statement: IfStatement | CallExpression): void
+  pushStatement(statement: IfStatement | CallExpression | ExpressionNode): void
 }
 
 function createSSRTransformContext(
index 4945d1e3a845a00a326b74adb731726de8934723..e1669a594031db4a271670291706f1014fc58c40 100644 (file)
@@ -125,12 +125,13 @@ export function ssrProcessTransitionGroup(
         p.exp.content === '_attrs',
     )
     if (hasFallthroughAttrs) {
+      context.pushStatement(
+        createSimpleExpression('const _tag = _attrs && _attrs.tag'),
+      )
       context.pushStatement(
         createIfStatement(
-          createSimpleExpression('_attrs && _attrs.tag'),
-          createBlockStatement([
-            createSimpleExpression('_push(`<${_attrs.tag}>`)'),
-          ]),
+          createSimpleExpression('_tag'),
+          createBlockStatement([createSimpleExpression('_push(`<${_tag}>`)')]),
         ),
       )
     }
@@ -140,10 +141,8 @@ export function ssrProcessTransitionGroup(
     if (hasFallthroughAttrs) {
       context.pushStatement(
         createIfStatement(
-          createSimpleExpression('_attrs && _attrs.tag'),
-          createBlockStatement([
-            createSimpleExpression('_push(`</${_attrs.tag}>`)'),
-          ]),
+          createSimpleExpression('_tag'),
+          createBlockStatement([createSimpleExpression('_push(`</${_tag}>`)')]),
         ),
       )
     }