diff --git a/packages/compiler-core/src/utils.ts b/packages/compiler-core/src/utils.ts index b65c812a6e4..880845591bc 100644 --- a/packages/compiler-core/src/utils.ts +++ b/packages/compiler-core/src/utils.ts @@ -137,16 +137,13 @@ export function findDir( name: string | RegExp, allowEmpty: boolean = false ): DirectiveNode | undefined { - for (let i = 0; i < node.props.length; i++) { - const p = node.props[i] - if ( + const prop = node.props.find( + p => p.type === NodeTypes.DIRECTIVE && (allowEmpty || p.exp) && (isString(name) ? p.name === name : name.test(p.name)) - ) { - return p - } - } + ) + return prop as DirectiveNode } export function findProp( diff --git a/packages/runtime-core/src/componentRenderUtils.ts b/packages/runtime-core/src/componentRenderUtils.ts index 1274f474e63..6dcabbd9a3b 100644 --- a/packages/runtime-core/src/componentRenderUtils.ts +++ b/packages/runtime-core/src/componentRenderUtils.ts @@ -327,15 +327,10 @@ export function shouldUpdateComponent( return hasPropsChanged(prevProps, nextProps!, emits) } else if (patchFlag & PatchFlags.PROPS) { const dynamicProps = nextVNode.dynamicProps! - for (let i = 0; i < dynamicProps.length; i++) { - const key = dynamicProps[i] - if ( - nextProps![key] !== prevProps![key] && - !isEmitListener(emits, key) - ) { - return true - } - } + return dynamicProps.some( + key => + nextProps![key] !== prevProps![key] && !isEmitListener(emits, key) + ) } } else { // this path is only taken by manually written render functions @@ -369,16 +364,10 @@ function hasPropsChanged( if (nextKeys.length !== Object.keys(prevProps).length) { return true } - for (let i = 0; i < nextKeys.length; i++) { - const key = nextKeys[i] - if ( - nextProps[key] !== prevProps[key] && - !isEmitListener(emitsOptions, key) - ) { - return true - } - } - return false + return nextKeys.some( + key => + nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key) + ) } export function updateHOCHostEl( diff --git a/packages/server-renderer/src/helpers/ssrRenderSlot.ts b/packages/server-renderer/src/helpers/ssrRenderSlot.ts index bcb393dea04..0314176a720 100644 --- a/packages/server-renderer/src/helpers/ssrRenderSlot.ts +++ b/packages/server-renderer/src/helpers/ssrRenderSlot.ts @@ -38,13 +38,7 @@ export function ssrRenderSlot( } else { // ssr slot. // check if the slot renders all comments, in which case use the fallback - let isEmptySlot = true - for (let i = 0; i < slotBuffer.length; i++) { - if (!isComment(slotBuffer[i])) { - isEmptySlot = false - break - } - } + let isEmptySlot = slotBuffer.every(s => isComment(s)) if (isEmptySlot) { if (fallbackRenderFn) { fallbackRenderFn()