|Vue.js源码全方位深入解析,快人一步进名企-完结( 六 )
export default <{p>created () <{p>console.log('msg' in this)
下面我们来看一下 has 函数的实现:
const PublicInstanceProxyHandlers = <{p>
has
({ _: { data setupState accessCache ctx type appContextkey) <{p>
// 依次判断
return (accessCache[key
!== undefined ||
(data !== EMPTY_OBJ && hasOwn(data key)) ||
(setupState !== EMPTY_OBJ && hasOwn(setupState key)) ||
(type.props && hasOwn(normalizePropsOptions(type.props)[0
key)) ||
hasOwn(ctx key) ||
hasOwn(publicPropertiesMap key) ||
hasOwn(appContext.config.globalProperties key))
这个函数的实现很简单 , 依次判断 key 是否存在于 accessCache、data、setupState、props 、用户数据、公开属性以及全局属性中 , 然后返回结果 。
三、总结
至此 , 我们就搞清楚了创建上下文代理的过程 , 让我们回到 setupStatefulComponent 函数中 , 接下来分析第二个流程——判断处理 setup 函数 。
- 华为荣耀|荣耀X50全方位升级,1英寸大底+天玑8200,有点意外
- 编程|小米13 Pro全方位揭晓,陶瓷机身+1英寸超大底,有高端味了
- 陶瓷后壳|有高端味了!小米13 Pro陶瓷版全方位揭晓
- 陶瓷后壳|温润如玉!小米13 Pro陶瓷版全方位揭晓
- 雷军|直屏+直边!雷军晒小米13全方位外观图:比iPhone 14手感好
- 影驰|次旗舰全方位领先老卡皇!影驰RTX 4080 16GB星曜 OC评测:超频提升6%
- 徕卡|Ultra能力全面下放!小米13全方位继承徕卡影像
- 基于AM5708开发板——开箱初探+环境搭建、源码编译
- 年末送礼选关怀,全方位健康助手:dido E10S Pro智能手表上手
- |荣耀X50全方位升级,新增16GB版本,开启大存储时代
