谈谈我对Vuex的理解_第1页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、谈谈我对vuex的理解它对于我们来说就像眼镜,惟独我们自己知道是否需要它,它好用但不能滥用,我对它的理解,从以下几个层面开头绽开:1 .state1)单一状态树vuex用法单一状态树-是的,用一个对象就包含了所有的应用层级状态。至此它便作为一个唯一数据源(ssot)而存在。这也意味着,每个应用将仅仅包含一个store实例。单一状态树让我们能够挺直地定位任一特定的状态片段,在调试的过程中也能轻易地取得囫囵当前应用状态的快照。2)在vue组件中获得vuex状态最好在根实例中注册store选项,该store实例会注入到根组件下的全部子组件中,且子组件能通过this.$store拜访到。而不是在每个需

2、要用法state的组件中需要频繁地导入。3)mapstate辅助函数当一个组件需要猎取多个状态时候,可以用法mapstate辅助函数协助我们生成计算属性,这样可以简化代码书写。mapstate函数会返回一个对象,然后可以用法对象绽开运算符将它与局部计算属性混合用法。4)不要滥用vuex用法vuex并不意味着你需要将全部的状态放入vuex。虽然将全部的状态放到vuex会使状态变幻更显式和易调试,但也会使代码变得冗长和不直观。假如有些状态严格属于单个组件,最好还是作为组件的局部状态。你应当按照你的应用开发需要举行权衡和确定。2. gettersgetters用来从store中的state中派生出一

3、些状态,例如对列表举行过滤并计数getters可以认为是store的计算属性。和state类似,有mapgetters辅助函数。3. mutations更改vuex的store中的状态的唯一办法是提交mutation。vuex中的mutations十分类似于大事:每个mutation都有一个字符串的大事类型(type)和一个回调函数(handler)。这个回调函数就是我们实际举行状态更改的地方,并且它会接受state作为第一个参数1)提交载荷(payload)你可以向mit传入额外的参数,即mutation的载荷(payload):2)mutations需遵守vue的响应规章3)用法常量替代m

4、utation大事类型4)mutation必需是同步函数5)在组件中提交mutations你可以在组件中用法this.$mit(&39;xxx&39;)提交mutation,或者用法mapmutations辅助函数将组件中的methods映射为mit调用(需要在根节点注入store)。4. actionsactions类似于mutation,不同在于:· actions提交的是mutation,而不是挺直变更状态。· actions可以包含随意异步操作。1)在组件中分发action你在组件中用法this.$store.dispatch(&39;xxx&39;)分发a

5、ction,或者用法mapactions辅助函数将组件的methods映射为store.dispatch调用(需要先在根节点注入store)2)组合actionsaction通常是异步的,那么如何知道action什么时候结束呢?更重要的是,我们如何才干组合多个action,以处理越发复杂的异步流程?首先,你需要明了store.dispatch可以处理被触发的action的回调函数返回的promise,并且store.dispatch照旧返回promise。5. modules因为用法单一状态树,应用的全部状态会集中到一个比较大的对象。当应用变得十分复杂时,store对象就有可能变得相当臃肿。为了解决以上问题,vuex允许我们将store分割成模块(module)。每个模块拥有自己的state、mutation、action、getter、甚至是嵌

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论