温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

vuex的理解与使用

发布时间:2020-06-28 03:58:19 来源:网络 阅读:1179 作者:杏sunshine 栏目:web开发
   研究了一段时间的vuex,只是简单地会用,对于里面的一些知识点还是
     不太会表达,就目前,先梳理一下自己对vuex中几个主要概念的理解
    vuex一个专为 Vue.js应用程序开发的状态管理模式,主要是为了解决组
    件间的通信,方便数据的共用,如果不使用vuex,数据之间或许可以
    用子组件的传值来解决,但是比较麻烦。
    概念的理解
    state: 状态管理 ,储存初始化数据

    getters:相当于store的计算属性,对State 里面的数据二次处理

    mutations:改变state状态的函数,对数据进行计算的方法全部写在里面,
    每个mutation都有一个事件类型和一个回调函数,回调函数必须是同步
    的,通过this.$store.commit('decrement')来触发

    actions:主要是commit mutations,而不是用于直接更变状态,是异步
    操作,通过this.$store.dispatch('decrement')来触发

    mapState 辅助函数,把全局的 state映射到当前组件的 computed 计算
    属性中,返回的是一个对象
    之所以使用mapstate:当一个组件需要获取多个状态时候,将这些状
    态都声明为计算属性会有些重复和冗余。

    mapGetters:把全局的getters映射到当前组件的 computed 计算属性
    中,返回的是一个数组
    computed:mapGetters([
        'count'
        //映射 this.count 为 store.getters.count
    ]),

    mapMutations:将组件中的 methods 映射为 store.commit 调用
         methods:{
            ...mapMutations([  
                    'add'
                    //映射 this.add() 为 this.$store.commit('add')
            ])
        },

    mapActions::将组件中的 methods 映射为 store.dispatch 调用
        methods:{
             ...mapActions([
             'increment'
             // //映射 this.increment() 为 this.$store.dispatch('increment')
             ])
        },
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI