Vuex总结

一、简述对Vuex的理解
 
    one:什么是Vuex
        1、是一个专为Vue.js应用程序开发的状态管理系统
        2、它采用集中式存储管理应用的所有组件的状态,并以想要的规则保证状态以一种可预测的方式发生变化。
        3、Vuex也集成到Vue的官方调试工具devtools extension ,提供了诸如零配置的time-travel调试、状态快照导入导出等高级调试功能。
        4、帮助我们管理新的共享状态
        5、适合于开发大型单页面应用
 

    two:使用Vuex的原因:
       当我们遇到多个组件共享状态时,多层组件的传值非常繁琐,不利于维护,因此我们把组件的共享状态抽取出来,以一个单例模式管理,在这种模式下,不管在哪个组件都可以获取状态或触发行为
 

    three:什么情况下使用Vuex
            1、虽然Vuex可以帮助我们管理共享状态,但是也附带了更多的概念和框架,增加了学习成本,所以决定是否要使用Vuex要对短期和长期效益进行权衡。
          2、如果应用够简单,最好不要使用Vuex;如果需要构建一个中大型单页应用,可以考虑使用Vuex去更好的再组件外部管理状态。
 

    four:如何使用Vuex
        1、每一个Vuex应用核心都是store(仓库),它包含着应用大部分的状态(state),store是内存机制,而不是缓存机制,当前页面一旦刷新就会通过路由跳转或者关闭,都会导致store初始化。
         2、Vuex的核心部分:
            (1)State: 存放基本数据   ----辅助函数mapState: 当一个组件需要获取多个状态时候,将这些状态都声明为计算属性会有些重复和冗余。为了解决这个问题,我们可以使用 mapState 辅助函数帮助我们生成计算属性,让你少按几次键。
            (2)getters:是从store中的state派生出来的状态,专门来计算state中的数据,相当于state中数据的计算属性  ---辅助函数mapGetters辅助函数: mapGetters 辅助函数仅仅是将 store 中的 getters 映射到局部计算属性,与state类似
            (3)actions:  是专门操作异步请求的数据和业务逻辑的地方,它不能直接变更state中的状态,而是通过commit来调用mutations里的方法来改变state里的数据。 ---辅助函数mapActions 将组建的methods映射为store.dispath调用
            (4)mutations:提交mutions是更改Vuex中的状态的唯一方法。mutations必须是同步的,如果要异步需要使用actions。每一个mutations都有一个字符串作为第一个参数,提交载荷作为第二个参数。 ---辅助函数mapMutations 将组建中的methods映射为store.commit调用。
            (5)Moules:使用单一状态树,导致应用的所有状态几种到一个很大的对象,但是,当应用变得很大时,store对象会变得臃肿不堪,为了解决以上问题,Vuex允许我们将store分割到模块(modules)。每个模块拥有自己的state、mutations、avtions、grtters。
        3、若要改变state里的数据,则通过actions使用comiit来调用mutations里的方法进而改变state里的数据。
        

        five:Vuex的数据流向
 

 
二、Vue安装
    1、在Vue-cli架构中 :
        npm i  vuex  --save
        yarn add vuex
        npm install --save vue-router vuex
    2、store.js配置
 
三、五大方法
 
    1、state
        用于数据管理,可以通过computed直接返出,也可以组件调用,也可以借助mapState()管理
 
 
    2、getter
        主要用于数据的过滤,直接通过computed调用,也可以mapGetters()
 
   3、mutations
        主要用于储存公共方法
        直接mapMutations()调用或者commit提交以及传值
 
    4、actions
        用于异步方法
 
    5、modules
        对于大型项目,进行模块化分组管理,store.js可以引入多个类似于store.js的文件,在总文件进行模块化状态管理
 
 
 
 
posted @ 2018-11-20 08:35  浅陌。  阅读(131)  评论(0编辑  收藏  举报