cuixiaorui / mini-vue

实现最简 vue3 模型( Help you learn more efficiently vue3 source code )

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

reactivity/baseHandler.ts createGetter中的优化点

sdutwsl opened this issue · comments

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))

也许可以优化下。