reactivity/baseHandler.ts createGetter中的优化点
Author: sdutwslCreated Jun 9, 2023Updated Jun 9, 2023
const isExistInReactiveMap = () =>
key === ReactiveFlags.RAW && receiver === reactiveMap.get(target);
const isExistInReadonlyMap = () =>
key === ReactiveFlags.RAW && receiver === readonlyMap.get(target);
const isExistInShallowReadonlyMap = () =>
key === ReactiveFlags.RAW && receiver === shallowReadonlyMap.get(target);这三个常量写为函数对象似乎并没有什么实质性作用,vue3现在的代码已经实现为:
(key === ReactiveFlags.RAW &&
receiver ===
(isReadonly
? shallow
? shallowReadonlyMap
: readonlyMap
: shallow
? shallowReactiveMap
: reactiveMap
).get(target))也许可以优化下。
Source: cuixiaorui/mini-vue