当前位置:   article > 正文

Vuex之理解Getters的用法

getters
一.什么是getters

在介绍state中我们了解到,在Store仓库里,state就是用来存放数据,若是对数据进行处理输出,比如数据要过滤,一般我们可以写到computed中。但是如果很多组件都使用这个过滤后的数据,比如饼状图组件和曲线图组件,我们是否可以把这个数据抽提出来共享?这就是getters存在的意义。我们可以认为,【getters】是store的计算属性。

二.操作

通过属性访问,通过方法访问:

在store\store.js

  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. Vue.use(Vuex)
  4. export default new Vuex.Store({
  5. //创建一个对象来保存应用启动时的初始状态
  6. state:{
  7. // 应用启动时, count置为0
  8. count:0,
  9. todos: [
  10. { id: 1, text: '水果类', done: true },
  11. { id: 2, text: '苹果', done: true },
  12. { id: 3, text: '苹果', done: false}
  13. ]
  14. },
  15. getters: {
  16. doneTodos: state => {//通过方法访问
  17. return state.todos.filter(todo => todo.done)
  18. },
  19. doneTodosCount: (state, getters) => {//通过属性访问
  20. return getters.doneTodos.length
  21. }
  22. }
  23. })

vueDome.vue 

  1. <template>
  2. <div>
  3. <P>通过属性访问:{{doneTodosCount}}</p>
  4. <P>通过方法访问:{{todos}}</p>
  5. </div>
  6. </template>
  7. <script>
  8. /*
  9. 1.mapState 辅助函数
  10. 当映射的计算属性的名称与 state 的子节点名称相同时,
  11. 我们也可以给 mapState 传一个字符串数组
  12. */
  13. import { mapState } from 'vuex'
  14. export default {
  15. computed:{
  16. todos:function() { //通过方法访问
  17. return this.$store.getters.doneTodos;
  18. },
  19. doneTodosCount () {
  20. return this.$store.getters.doneTodosCount
  21. }
  22. }
  23. }
  24. </script>


三.mapGetters 辅助函数

mapGetters 辅助函数仅仅是将 store 中的 getter 映射到局部计算属性:

  1. <template>
  2. <div>
  3. <h4>测试1:Count is {{count}}</h4>
  4. <P>通过属性访问:{{doneTodosCount}}</p>
  5. <P>通过方法访问:{{doneTodos}}</p>
  6. </div>
  7. </template>
  8. <script>
  9. import {mapGetters} from 'vuex'
  10. export default {
  11. computed:{
  12. count(){
  13. return this.$store.state.count
  14. },
  15. ...mapGetters([
  16. 'doneTodos',
  17. 'doneTodosCount'
  18. ])
  19. }
  20. }
  21. </script>

效果同上。分析:1...mapGetters表示// 使用对象展开运算符将 getters 混入 computed 对象中

2.mapGetters里面的都是store.js里面的getters的方法名

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/426318
推荐阅读
相关标签
  

闽ICP备14008679号