美文网首页
vuex常用方法

vuex常用方法

作者: 杯莫停_5273 | 来源:发表于2018-12-19 09:35 被阅读0次

以下是在脚手架搭建的项目中使用vuex。脚手架初始选择vuex后已经引入vuex并且全局注入。

官网中介绍的很清楚了,下面是本人的一点小结。用到的都是mapState这样的模式。

store.js中
export default new Vuex.Store({
    state: {
        myStateArr:[
            {
                id:1,
                age:24,
                name:'lin'
            },
            {
                id:2,
                age:25,
                name:'qi'
            }
        ],
        myStateNum:1
    },
    mutations: {
        //第一个就是store.state,第二个是外部传进来的参数(可选)
        increment (state,params) {
            state.myStateNum += params
        }
    },
    //context具有store相同的方法和属性,params传进来的参数
    //myAction({commit,state,getters},params)
    //actions可以使用异步分发mutations
    actions: {
        myAction(context,params){
            //可以将传进来的参数在传给mutations(可选)
            context.commit('increment',params)
        }
    },
    //personLen(state [,getters])
    getters:{
        myGetter(state){
            return  state.myStateNum;
        },
        myGetterTwo:(state) => (id) => {
            return state.myStateArr.filter(function (value) {
               if( value.id == id){
                   return value
               }
            })
        }
    }
})
界面中使用
state and getters

这两个都是获取状态的,使用方法差不多,getters可以根据传递的参数来获取

import {mapState,mapGetters} from 'vuex'
computed:{
    ...mapState({
        myStateArr: 'myStateArr'
    }),
    ...mapGetters({
        //将this.myGetter 映射为 this.$store.getters.myGetter
        myGetter:'myGetter',
        myGetterTwo:'myGetterTwo'
    })
}
mutations and actions

这两个都是方法,mutation只能用于同步,actions可用于异步

methods:{
    change(){
        this.increment(3)
    },
    changeTwo(){
        this.add(2)
    },
    ...mapMutations({
        //相当于this.$store.commit('increment')
        increment:'increment'
    }),
    ...mapActions({
        //将this.add()映射为this.$store.dispatch('myAction');
        add:'myAction'
    })
}
小结
  1. 上面的increment:'increment'这种键值对相同的可以使用mapMutations(['increment'])这种方式。
  2. state,getter都是状态,用计算属性获取值;mutations,actions里的都是方法,其它方法怎么用,这个也怎么用;
  3. 增加state要用到vue.set(obj,kes,value);

相关文章

  • vuex常用方法

    以下是在脚手架搭建的项目中使用vuex。脚手架初始选择vuex后已经引入vuex并且全局注入。官网中介绍的很清楚了...

  • 监听Vuex中的状态值

    一般常用的两种监听Vuex状态值的方法: 1.用计算属性返回vuex中的状态值,再进行监听 2.直接对vuex中的...

  • 分享几个用于深复制的方法

    本篇摘要:主要分享了 JS 中常用的几种深复制方法,有来自于vuex``jQuery``JSON``lodash`...

  • VueX--VUE核心插件

    使用VueX方法 1.安装vuex模块 npm install vuex --save 2.作为插件使用 Vue....

  • vuex与axios的优化写法

    vuex与axios的优化写法 封装方法 使用方法 vuex: action.js get post put de...

  • vue组件之间的几种通讯方式

    1. props和$emit 最简单常用的方式 目录结构 效果图 2. vuex https://vuex.vue...

  • Vue 非父子组件的数据传递

    Vue 复杂的组件之间传值有两种常用的方法,数据层框架vuex和(Bus/总线/发布订阅模式/观察者模式)。在这...

  • vuex

    如图是vuex的模块结构 使用vuex app.js触发模块action中的toggleSideBar方法: 用户...

  • 2019-06-04 Vuex的理解

    对于简单的项目一些常用的vue方法足以解决,但是涉及到页面状态,权限判断等一些复杂的传值,vuex是必须的。 以上...

  • vuex

    VUEX的使用 vuex的作用: 常用来作为全局状态管理器, 定义一个状态全局可用,部分功能与缓存类似,但是vue...

网友评论

      本文标题:vuex常用方法

      本文链接:https://www.haomeiwen.com/subject/zyddkqtx.html