美文网首页
vue状态管理模式vuex-Getter

vue状态管理模式vuex-Getter

作者: 清风昙 | 来源:发表于2022-08-22 08:54 被阅读0次
Getter简介

Vuex 允许我们在 store 中定义“getter”(可以认为是 store 的计算属性)。就像计算属性一样,getter 的返回值会根据它的依赖被缓存起来,只有当它的依赖值发生了改变才会被重新计算。不过从 Vue 3.0 开始,getter 的结果不再像计算属性一样会被缓存起来。
Getter 接受 state 作为其第一个参数,可以接受其他 getter 作为第二个参数。

  const store = createStore({
    state: {
      listArr: [
        {id: 1, name: 'first', status: true},
        {id: 2, name: 'two', status: false}
      ]
    },
    getters: {
      // 第一个参数
     handleListArr (state) {
        return state.listArr.filter( item => item.status)
      }
      // 第二个参数
      handleListArr (state, getters) {
        return getters.listArr.length
      }
    }
  })
Getter访问方式

1.通过属性访问
Getter会暴露为store.getters对象,可以通过属性方式访问

  store.getters.listArr
  // [{id: 1, name: 'first', status: true},{id: 2, name: 'two', status: false}]
getters: {
      handleListArr (state, getters) {
        return getters.listArr.length
      }
 }

可以在组件中使用getters

computed: {
  handleListArr () {
    return this.$store.getters.listListArr
  }
}

2.通过方法访问
可以通过让 getter 返回一个函数,来实现给 getter 传参。在你对 store 里的数组进行查询时非常有用。

getters: {
   getListById: (state) => (id) => {
      return state.listArr.find(item => item.id == id)
    }
}

在组件中使用

computed: {
  handleListArr () {
    return this.$store.getters.listListArr(2)
  }
}

注:getter 在通过方法访问时,每次都会去进行调用,而不会缓存结果。

辅助函数mapGetters

将store中的getter映射到局部计算属性

import { mapGetters } from 'vuex'
export default {
  computed: {
    // 使用对象展开运算符将getter混入computed对象中
    ...mapGetters([
      'handleListArr'
    ])
  }
}

如想把getter属性取另外名称,可使用对象方式:

...mapGetters({
  // 把this.handleList映射为this.$store.getters.handleListArr
  handleList: 'handleListArr'
})

相关文章

  • vue状态管理模式vuex-Getter

    Getter简介 Vuex 允许我们在 store 中定义“getter”(可以认为是 store 的计算属性)。...

  • 2018-04-01

    什么是vuex? Vuex 是一个专为Vue.js用程序开发的状态管理模式。 状态管理模式中的状态是指什么状态?为...

  • 关于vuex

    1、vuex是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。 什么是“状态管理模式”? ...

  • Vuex知识整理

    Vuex是什么? Vuex是为了Vue.js应用程序开发的状态管理模式。那什么是“状态管理模式”呢?通俗来讲,它就...

  • vue基础(二) - Vuex

    简介 Vuex 是 专为 Vue 开发的状态管理模式。通常用于跨页面共享数据。 状态管理模式:它采用集中式的存储,...

  • 15-Vuex基础

    Vue之vuex状态管理 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。 这个Vuex包含以下几...

  • Vuex - 1 - 敲门

    1.Vuex的意义 为Vue.js应用开发的状态管理模式以一个全局单例模式管理组件共享的状态 2.状态管理模式 2...

  • vuex

    vuex是什么 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式也是为 Vue.js 设计的状态管理...

  • Vue学习笔记

    0.参考文档 理解vuex -- vue的状态管理模式 vuex最简单、最详细的入门文档 vue+webpack项...

  • vuex基础

    vuex Vuex是什么呢?它是Vue的状态管理模式,在使用vue的时候,需要在vue中各个组件之间传递值是很痛苦...

网友评论

      本文标题:vue状态管理模式vuex-Getter

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