Browse Source

refactor(compiler-vapor): simplify generate prop modifier

三咲智子 Kevin Deng 2 years ago
parent
commit
6001fe8976

+ 1 - 1
packages/compiler-vapor/__tests__/transforms/__snapshots__/vBind.spec.ts.snap

@@ -104,7 +104,7 @@ const t0 = _template("<div></div>")
 export function render(_ctx) {
   const n0 = t0()
   const { 0: [n1],} = _children(n0)
-  _renderEffect(() => _setDynamicProps(n1, { [\`.\${_ctx.fooBar}\`]: _ctx.id }))
+  _renderEffect(() => _setDynamicProps(n1, { ["." + _ctx.fooBar]: _ctx.id }))
   return n0
 }"
 `;

+ 1 - 1
packages/compiler-vapor/__tests__/transforms/vBind.spec.ts

@@ -427,7 +427,7 @@ describe('compiler v-bind', () => {
     })
     expect(code).contains('renderEffect')
     expect(code).contains(
-      '_setDynamicProps(n1, { [`.${_ctx.fooBar}`]: _ctx.id })',
+      `_setDynamicProps(n1, { ["." + _ctx.fooBar]: _ctx.id })`,
     )
   })
 

+ 6 - 13
packages/compiler-vapor/src/generators/prop.ts

@@ -105,19 +105,12 @@ function genPropertyKey(
   }
 
   const key = genExpression(node, context)
-  if (runtimeCamelize && modifier) {
-    return [`[\`${modifier}\${`, ...call(helper('camelize'), key), `}\`]`]
-  }
-
-  if (runtimeCamelize) {
-    return [`[`, ...call(helper('camelize'), key), `]`]
-  }
-
-  if (modifier) {
-    return [`[\`${modifier}\${`, ...key, `}\`]`]
-  }
-
-  return [`[`, ...key, `]`]
+  return [
+    '[',
+    modifier && `${JSON.stringify(modifier)} + `,
+    ...(runtimeCamelize ? call(helper('camelize'), key) : key),
+    ']',
+  ]
 }
 
 function genPropValue(values: SimpleExpressionNode[], context: CodegenContext) {