|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 函数 。
- 36氪独家|「蛙声科技」完成亿元级B轮融资,围绕音视频、大屏写作及SaaS构建全方位远程会议智能解决方案
- 直播回顾|不仅仅是重点!带你全方位解读FLIR智能巡检功能插件
- 华硕|轻薄性能全都要,全方位解读华硕无畏Pro15 2022:真的全能吗?
- 视频直播系统源码—需要哪些功能?
- 2022年6月|ManageEngine卓豪助力山东潍焦集团 | 全方位监控
- NothingPhone1近段时间可算是赚够了热度|Nothing Phone 1全方位渲染图曝光:全黑配色感觉
- 渲染图|Nothing Phone 1全方位渲染图曝光:全黑配色感觉大不一样
- 机箱|九州风神CK500WH幻城装机分享+12700K+3070雪鹰全方位实测
- vivo|平板圈的“战斗机”!vivo首款平板给你全方位体验
- 3D打印|源码系统和saas账号的区别