From 7a8cee86887c933ecc8dcbcc9c5ef7fc90e5162f Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 5 May 2021 16:25:33 -0400 Subject: [PATCH] wip: remove v-if key warning as there are legit use cases --- .../__tests__/transforms/vIf.spec.ts | 1 - packages/compiler-core/src/errors.ts | 8 -------- packages/compiler-core/src/transforms/vIf.ts | 17 ++++------------- 3 files changed, 4 insertions(+), 22 deletions(-) diff --git a/packages/compiler-core/__tests__/transforms/vIf.spec.ts b/packages/compiler-core/__tests__/transforms/vIf.spec.ts index 2024cdd3..f1b91cc4 100644 --- a/packages/compiler-core/__tests__/transforms/vIf.spec.ts +++ b/packages/compiler-core/__tests__/transforms/vIf.spec.ts @@ -306,7 +306,6 @@ describe('compiler: v-if', () => { code: ErrorCodes.X_V_IF_SAME_KEY } ]) - expect('unnecessary key usage on v-if').toHaveBeenWarned() }) }) diff --git a/packages/compiler-core/src/errors.ts b/packages/compiler-core/src/errors.ts index 6dfa62cb..3cae36da 100644 --- a/packages/compiler-core/src/errors.ts +++ b/packages/compiler-core/src/errors.ts @@ -91,9 +91,6 @@ export const enum ErrorCodes { X_CACHE_HANDLER_NOT_SUPPORTED, X_SCOPE_ID_NOT_SUPPORTED, - // warnings - X_V_IF_KEY, - // Special value for higher-order compilers to pick up the last code // to avoid collision of error codes. This should always be kept as the last // item. @@ -174,11 +171,6 @@ export const errorMessages: Record = { [ErrorCodes.X_CACHE_HANDLER_NOT_SUPPORTED]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`, [ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED]: `"scopeId" option is only supported in module mode.`, - // warnings - [ErrorCodes.X_V_IF_KEY]: - `unnecessary key usage on v-if/else branches. ` + - `Vue will automatically generate unique keys for each branch.`, - // just to fullfill types [ErrorCodes.__EXTEND_POINT__]: `` } diff --git a/packages/compiler-core/src/transforms/vIf.ts b/packages/compiler-core/src/transforms/vIf.ts index 9ba84f8b..384b6612 100644 --- a/packages/compiler-core/src/transforms/vIf.ts +++ b/packages/compiler-core/src/transforms/vIf.ts @@ -110,7 +110,7 @@ export function processIf( } if (dir.name === 'if') { - const branch = createIfBranch(node, dir, context) + const branch = createIfBranch(node, dir) const ifNode: IfNode = { type: NodeTypes.IF, loc: node.loc, @@ -145,7 +145,7 @@ export function processIf( if (sibling && sibling.type === NodeTypes.IF) { // move the node to the if node's branches context.removeNode() - const branch = createIfBranch(node, dir, context) + const branch = createIfBranch(node, dir) if (__DEV__ && comments.length) { branch.children = [...comments, ...branch.children] } @@ -187,16 +187,7 @@ export function processIf( } } -function createIfBranch( - node: ElementNode, - dir: DirectiveNode, - context: TransformContext -): IfBranchNode { - const userKey = findProp(node, `key`) - if (__DEV__ && userKey) { - context.onWarn(createCompilerError(ErrorCodes.X_V_IF_KEY, userKey.loc)) - } - +function createIfBranch(node: ElementNode, dir: DirectiveNode): IfBranchNode { return { type: NodeTypes.IF_BRANCH, loc: node.loc, @@ -205,7 +196,7 @@ function createIfBranch( node.tagType === ElementTypes.TEMPLATE && !findDir(node, 'for') ? node.children : [node], - userKey + userKey: findProp(node, `key`) } }