当前位置:首页 > 民俗文化

vuex 深入Vuex原理(上)

孔卫国于2016年加入Qunar.com技术团队。目前在大住宿事业部/增值业务R&D中心参与了TMC、CRM、QTA、Auth等项目的开发,并负责节点框架nomi的设计开发。愿意探索新的布道技巧,越来越偏向大前端的道路!在节点领域越陷越深!

前言

作为Vue生态的重要组成部分,Vuex是经营店铺的利剑。简而言之,Vuex是Vue的国家经理。使用Vuex可以使数据流清晰、可追溯、可预测,简单实现时间旅行等高级功能。对于复杂的大规模应用,Vuex将变得尤为重要。用于商店细分、商店模块化、商店变更、商店跟踪等。,商店管理将大大提高项目的稳定性和可扩展性。本文将通过Vuex的源代码来分析Vuex的设计和实现原理!

注:本文仅显示关键核心代码。由于篇幅的原因,人们更容易理解核心代码。再者,本文属于Vuex的高级文章。关于VUEX的相关机制和本章涉及的Vuex的高级使用,请到官网查看。

准备分析Vuex的成分

Vuex引入了State和Getter的概念来定义状态;使用突变和操作来更改状态;引入模块模块化状态;引入插件进行快照,记录和跟踪状态;提供了MapState、mapGetters、mapActions和mapvariations辅助函数,以方便开发人员处理虚拟机中的存储。具体组成如下:

关于Vuex的使用

Vuex的用法很简单。具体使用细节请参考Vuex官网。为了方便分析源代码,本文只简单介绍一下。我们只需要使用Vue的使用机制,将实例化的store对象注入到Vue实例中。如下图:

核心代码如下:

Vue.use(Vuex); // 1. vue的插件机制,安装vuexlet store = new Vuex.Store({ // 2.实例化store,调用install方法state,getters,modules,mutations,actions,plugins});new Vue({ // 3.注入store, 挂载vue实例store,render: h=>h(app)}).$mount('#app');对Vuex的疑问

当我们用Vuex来管理店铺时,不禁会问:(1)Vuex的店铺是如何注入组件的?(2)2)Vuex的状态和getter是如何映射到每个组件实例进行自动更新的?本章旨在解决上述问题。让我们深入Vuex的原理,揭开Vuex的神秘面纱。

探索原则

在这一部分,我们将分析核心代码,并通过源代码分析来回答问题。

问题:Vuex的店铺是如何注入组件的?

要解决这个问题,要从使用Vuex的出现开始。从上面的介绍中,我们知道应该先安装Vuex再使用Vuex。核心代码如下:

Vue.use(Vuex); // vue的插件机制,安装vuex插件源码分析

上面的代码得益于Vue的插件机制,在调用Vuex的安装方法时会加载Vuex。因此,我们直接关注安装方法的实现,其核心代码如下:

Vue.mixin({ beforeCreate: vuexInit });

可以看出,将Vue的实例组件注入存储的方式是通过Vue的混合机制,借助Vue组件的生命周期钩子beforeCreate。也就是说,在每个Vue组件的实例化过程中,vuexInit方法将在beforeCreate钩子之前被调用。接下来,我们将重点介绍vuexInit函数。以下是vuexInit的核心代码:

this.$store = typeof options.store === 'function'? options.store(): options.store

这段代码的核心问题就是这个的指向。由于混合机制,这将指向Vue组件实例。最后,我们可以在Vue组件的实例上获得Vuex的store对象的引用$store。如下图:

到目前为止,我们已经得到了这个问题的答案。

结论

Vuex使用Vue的mixin机制,混合beforeCreate钩子,将store注入Vue组件的实例,注册Vuex store的引用属性$store。其他问题的答案,请深入Vuex原理(第二部分)。

1.《vuex 深入Vuex原理(上)》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《vuex 深入Vuex原理(上)》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/1314072.html

上一篇

女乘客发文感谢国航空姐的小纸条 为空姐点赞! 目前是什么情况?

下一篇

男子发布侮辱戍边英雄言论被刑拘 究竟是怎么一回事?

包装箱标志 物流包装箱的标识代码

  • 包装箱标志 物流包装箱的标识代码
  • 包装箱标志 物流包装箱的标识代码
  • 包装箱标志 物流包装箱的标识代码

微信好友检测 分享一个微信好友检测代码,来看看微信里哪些好友已经清空你了

  • 微信好友检测 分享一个微信好友检测代码,来看看微信里哪些好友已经清空你了
  • 微信好友检测 分享一个微信好友检测代码,来看看微信里哪些好友已经清空你了
  • 微信好友检测 分享一个微信好友检测代码,来看看微信里哪些好友已经清空你了

中国第一镇国之宝 189组件一级文物堪称规格最高 镇国之宝何尊最早记载“中国”两字

  • 中国第一镇国之宝 189组件一级文物堪称规格最高 镇国之宝何尊最早记载“中国”两字
  • 中国第一镇国之宝 189组件一级文物堪称规格最高 镇国之宝何尊最早记载“中国”两字
  • 中国第一镇国之宝 189组件一级文物堪称规格最高 镇国之宝何尊最早记载“中国”两字
dota国服启动代码 刀塔自走棋国服服务器进入方法 dota2国服启动项命令

dota国服启动代码 刀塔自走棋国服服务器进入方法 dota2国服启动项命令

在《刀塔围棋》中,很多棋手发现自己是在外服而不是国服,造成了严重的卡壳问题。以下是国服服务器的录入方法。 在《刀塔围棋本身》中,很多棋手发现自己穿的不是国服,而是洋服,造成了严重的卡壳问题和队友都是外国人的尴尬局面。以下是进入国服服务器的方法。...

百果园加盟费 百果园如何通过加盟进行门店机制改革

在中国消费升级的背景下,零售业面临着内部和外部的挑战,但对那些勇于创新和实践的企业来说,这也是一个巨大的机遇。通过评选零售创新奖,CCFA希望推出一批具有行业代表性的优秀创新模式,不断推动零售业和企业健康、快速、稳定发展。2016年4月,为了全面响应国家“大众创业创新”的号召,...

北京统一挂号平台 网上挂号反方便了号贩子?北京预约挂号平台采用新机制解决问题

北京统一挂号平台 网上挂号反方便了号贩子?北京预约挂号平台采用新机制解决问题

信息化让患者方便挂号,却为人贩子打开了大门。以前需要雇人排队。现在,我们只需要用软件和插件就可以打破注册顺序,不用离开家。李嘉 作 资料图据北京市卫健委介绍,从11月1日起,北京统一订票登记平台借鉴了铁路12306的“慢排”机制,限制了“人贩子”的行为。实行“慢排队”后,系统会...

北京市统一挂号平台 网上挂号反方便了号贩子?北京预约挂号平台采用新机制解决问题

北京市统一挂号平台 网上挂号反方便了号贩子?北京预约挂号平台采用新机制解决问题

信息化让患者方便挂号,却为人贩子打开了大门。以前需要雇人排队。现在,我们只需要用软件和插件就可以打破注册顺序,不用离开家。李嘉 作 资料图据北京市卫健委介绍,从11月1日起,北京统一订票登记平台借鉴了铁路12306的“慢排”机制,限制了“人贩子”的行为。实行“慢排队”后,系统会...

八省联保 湖北与八省市建立物资联保联供机制

2月22日下午,湖北省新型冠状病毒疫情防控指挥部举行例行新闻发布会,副省长曹广晶介绍了我省物质保障情况。 据曹广晶介绍,目前,该省生活物资库存充足,供应渠道畅通。在商务部的支持下,湖北与8个省市建立了联合保供的合作机制,其他省市不断向湖北运送配...