Jelajahi Sumber

perf(compiler-vapor): use array instead of regex

三咲智子 Kevin Deng 2 tahun lalu
induk
melakukan
86ed0eddae

+ 3 - 4
packages/compiler-vapor/src/transform.ts

@@ -388,12 +388,11 @@ function processDynamicChildren(ctx: TransformContext<RootNode | ElementNode>) {
 }
 
 export function createStructuralDirectiveTransform(
-  name: string | RegExp,
+  name: string | string[],
   fn: StructuralDirectiveTransform,
 ): NodeTransform {
-  const matches = isString(name)
-    ? (n: string) => n === name
-    : (n: string) => name.test(n)
+  const matches = (n: string) =>
+    isString(name) ? n === name : name.includes(n)
 
   return (node, context) => {
     if (node.type === NodeTypes.ELEMENT) {

+ 1 - 1
packages/compiler-vapor/src/transforms/vIf.ts

@@ -20,7 +20,7 @@ import {
 import { extend } from '@vue/shared'
 
 export const transformVIf = createStructuralDirectiveTransform(
-  /^(if|else|else-if)$/,
+  ['if', 'else', 'else-if'],
   processIf,
 )