diff --git a/packages/runtime/CHANGELOG.md b/packages/runtime/CHANGELOG.md index ff74e3ec78af57a2bad56ad08134cd7064d154c4..074bc7a3c3890503ceaa5c58c2eeeebdf33f0a1b 100644 --- a/packages/runtime/CHANGELOG.md +++ b/packages/runtime/CHANGELOG.md @@ -25,6 +25,7 @@ ### Fixed +- 修复过滤属性方法返回值异常的问题 - 修复vo对象srfuf状态丢失异常 ## [0.7.41-alpha.32] - 2025-10-16 diff --git a/packages/vue3-util/src/use/vue/vue.ts b/packages/vue3-util/src/use/vue/vue.ts index f6649de7f9b9d6da11d0765d5c9952203734b9f0..9ab4ec9cbf75764f5a01a7f8be287fc49b8ee85d 100644 --- a/packages/vue3-util/src/use/vue/vue.ts +++ b/packages/vue3-util/src/use/vue/vue.ts @@ -142,10 +142,11 @@ export function isEmptyVNode(nodes: VNode[] | VNode): boolean { } /** - * @description 过滤attr中指定属性 + * @description 过滤attr中指定属性,如果存在自定义过滤回调,则不针对filterKeys的值进行过滤 * @export - * @param {Record} attrs - * @param {(key: string) => boolean} filter + * @param {Record} attrs 所有属性 + * @param {(key: string) => boolean} [filter] 自定义过滤回调 + * @param {string[]} [filterKeys=['class', 'style']] 需要过滤掉的属性 * @returns {*} {Record} */ export function useFilterAttribute( @@ -155,10 +156,11 @@ export function useFilterAttribute( ): Record { const result: Record = {}; Object.keys(attrs).forEach(key => { - if (filterKeys.includes(key)) { - return; - } - if (filter && filter(key)) { + if (filter) { + if (filter(key)) { + result[key] = attrs[key]; + } + } else if (!filterKeys.includes(key)) { result[key] = attrs[key]; } });