美文网首页
Vuex之getter

Vuex之getter

作者: wade3po | 来源:发表于2019-02-10 20:14 被阅读13次

    Vuex提供给我们一个Getter方法,主要就是为了在数据派生一些状态,简单来说就是想要通过判断进行过滤。

    比如有这样一个应用场景,我们有一个考试得分的数组,我们需要在很多页面使用,但是只显示不及格的,那么我们每个页面都要这样:

    computed: { scoreArr(){ return this.$store.state.score.filter(item => item < 60) }},

    或者:

    computed: mapState({ score(state){ return state.score.filter(item => item < 60) }}),

    反正要是很多地方用到,我们要么复制这个函数,或者抽取到一个共享函数然后在多处导入它,不是很理想,所以vuex提供了getter方法,在getters.js里面:

    export default { scoreGetter (state){ return state.score.filter(item => item < 60) }}

    然后就可以通过store.getters.scoreGetter去调用:

    computed: { scoreGetter(){ return this.$store.getters.scoreGetter }},

    getters也可以返回函数:

    scoreGetter: (state) => { return (num) => { return state.score.filter(item => item < num) }}

    调用:

    computed: { scoreGetter(){ return this.$store.getters.scoreGetter(90) }},

    相应的getter也有一个辅助函数mapGetters :

    引入:

    import { mapGetters } from 'vuex'

    数组:

    computed: { ...mapGetters([ 'scoreGetter', ])},

    可以重命名,使用对象:

    computed: { ...mapGetters({ newScore: 'scoreGetter' } )},

    标签使用:

    {{scoreGetter(90)}}

    {{newScore(90)}}

    方法里面使用:

    this.scoreGetter(60)

    this. newScore (60)

    欢迎关注Coding个人笔记 公众号

    相关文章

      网友评论

          本文标题:Vuex之getter

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