From: 魏 <2553241022@qq.com> Date: Mon, 10 Jul 2023 10:17:26 +0000 (+0800) Subject: refactor(reactivity): use hasChanged to avoid tracking NaN key twice (#7378) X-Git-Tag: v3.3.5~73 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=13b72317c5d2f8e73fb23edaeb6a0bc1cded1fdf;p=thirdparty%2Fvuejs%2Fcore.git refactor(reactivity): use hasChanged to avoid tracking NaN key twice (#7378) --- diff --git a/packages/reactivity/src/collectionHandlers.ts b/packages/reactivity/src/collectionHandlers.ts index 381bbad6c2..1d07af3be8 100644 --- a/packages/reactivity/src/collectionHandlers.ts +++ b/packages/reactivity/src/collectionHandlers.ts @@ -27,7 +27,7 @@ function get( const rawTarget = toRaw(target) const rawKey = toRaw(key) if (!isReadonly) { - if (key !== rawKey) { + if (hasChanged(key, rawKey)) { track(rawTarget, TrackOpTypes.GET, key) } track(rawTarget, TrackOpTypes.GET, rawKey) @@ -50,7 +50,7 @@ function has(this: CollectionTypes, key: unknown, isReadonly = false): boolean { const rawTarget = toRaw(target) const rawKey = toRaw(key) if (!isReadonly) { - if (key !== rawKey) { + if (hasChanged(key, rawKey)) { track(rawTarget, TrackOpTypes.HAS, key) } track(rawTarget, TrackOpTypes.HAS, rawKey)