Skip to content

Commit

Permalink
refactor: improve base getter readability
Browse files Browse the repository at this point in the history
  • Loading branch information
yyx990803 committed Jun 12, 2020
1 parent 80e1693 commit d863ce7
Showing 1 changed file with 14 additions and 14 deletions.
28 changes: 14 additions & 14 deletions packages/reactivity/src/baseHandlers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,34 +60,34 @@ function createGetter(isReadonly = false, shallow = false) {
if (targetIsArray && hasOwn(arrayInstrumentations, key)) {
return Reflect.get(arrayInstrumentations, key, receiver)
}

const res = Reflect.get(target, key, receiver)

if ((isSymbol(key) && builtInSymbols.has(key)) || key === '__proto__') {
return res
}

!isReadonly && track(target, TrackOpTypes.GET, key)
if (!isReadonly) {
track(target, TrackOpTypes.GET, key)
}

if (shallow) {
return res
}

if (isRef(res)) {
if (targetIsArray) {
return res
} else {
// ref unwrapping, only for Objects, not for Arrays.
return res.value
}
// ref unwrapping, only for Objects, not for Arrays.
return targetIsArray ? res : res.value
}

if (isObject(res)) {
// Convert returned value into a proxy as well. we do the isObject check
// here to avoid invalid value warning. Also need to lazy access readonly
// and reactive here to avoid circular dependency.
return isReadonly ? readonly(res) : reactive(res)
}

return isObject(res)
? isReadonly
? // need to lazy access readonly and reactive here to avoid
// circular dependency
readonly(res)
: reactive(res)
: res
return res
}
}

Expand Down

0 comments on commit d863ce7

Please sign in to comment.