]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(compiler-vapor): omit prop key for set class&style
author三咲智子 Kevin Deng <sxzz@sxzz.moe>
Thu, 25 Jan 2024 08:24:42 +0000 (16:24 +0800)
committer三咲智子 Kevin Deng <sxzz@sxzz.moe>
Thu, 25 Jan 2024 08:24:50 +0000 (16:24 +0800)
packages/compiler-vapor/src/generators/prop.ts

index 4dd4a1c95894a295ab2abf69dd41db9a3f3f9994..b48d0773bf0ecbfdd56d3f42d00e47786567ee8a 100644 (file)
@@ -15,10 +15,13 @@ export function genSetProp(oper: SetPropIRNode, context: CodegenContext) {
     const keyName = isString(oper.key) ? oper.key : oper.key.content
 
     let helperName: string | undefined
+    let omitKey = false
     if (keyName === 'class') {
       helperName = 'setClass'
+      omitKey = true
     } else if (keyName === 'style') {
       helperName = 'setStyle'
+      omitKey = true
     } else if (oper.modifier) {
       helperName = oper.modifier === '.' ? 'setDOMProp' : 'setAttr'
     }
@@ -27,14 +30,16 @@ export function genSetProp(oper: SetPropIRNode, context: CodegenContext) {
       pushFnCall(
         vaporHelper(helperName),
         element,
-        () => {
-          const expr = () => genExpression(oper.key, context)
-          if (oper.runtimeCamelize) {
-            pushFnCall(helper('camelize'), expr)
-          } else {
-            expr()
-          }
-        },
+        omitKey
+          ? false
+          : () => {
+              const expr = () => genExpression(oper.key, context)
+              if (oper.runtimeCamelize) {
+                pushFnCall(helper('camelize'), expr)
+              } else {
+                expr()
+              }
+            },
         'undefined',
         () => genExpression(oper.value, context),
       )