• vue辅助函数mapStates与mapGetters


    状态管理器

    <!-- store.js: -->
    
    import Vue from 'vue'
    import Vuex from 'vuex'
    
    Vue.use(Vuex)
    
    export default new Vuex.Store({
      state: { // 需要管理的组件状态
        loginState: '', 
        list: [1, 2, 3, 4, 5, 6, 7]
      },
      getters: { // 可以看做是state的计算属性,类似于组件中的data月computed
        len (state) {
          return state.list.length
        }
      },
      mutations: { // 唯一改变状态的地方
        changeLoginSatate(state, data) { // 代表的是初始化的数据,data代表需要改变的数据
          state.loginState = data
        }
      },
      actions: { // 异步操作
      }
    })
    

    第二步:获取

    import { mapState,mapGetters } from 'vuex' // 导入mapState
    
    
    // 辅助函数...mapState
    computed: {
        ...mapState({
          loginState: (state) => { return state.loginState }
        }),
      },
    
    // > 拿取数据
     addCart () {
          const { $store: { state: { loginState } } } = this
          if (loginState === 'ok') {
            console.log("加入购物车")
          } else {
            this.$router.push('/login')
          }
        },
    

    辅助函数样式二

    <!-- store.js: -->
    
      state: { // 需要管理的组件状态
        loginState: '',
        list: [1, 2, 3, 4, 5, 6, 7]
      },
      getters: { // 可以看做是state的计算属性,类似于组件中的data月computed
        len (state) {
          return state.list.length
        }
      }
    
    <!-- 调用页面: -->
    
    import { mapState,mapGetters } from 'vuex'
    
    // 辅助函数...mapGetters
     computed: {
        ...mapGetters({
          // len: (getters) => {
          //   len 
          // }
          len: 'len'
        })
      },
    
    // 拿取数据
    
    {{ len }}
    
    

    区别

    state: { // 需要管理的组件状态
        loginState: '',
        list: [1, 2, 3, 4, 5, 6, 7]
      },
      getters: { // 可以看做是state的计算属性,类似于组件中的data里的computed !!!可以通过len(函数)把state里的数据处理好返回给函数本身,页面需要调用时直接引入辅助函数mapGetters,拿值
        len (state) {
          return state.list.length
        }
      }
    
  • 相关阅读:
    我再说一遍-微软官方文档查询技巧分享
    你听我说-HandyControl多语言包处理
    太阳当空照-Windows服务化方式脚本封装sc指令
    你听我说-HandyControl源码编译
    太阳当空照-知识分享
    Mac多屏dock切换
    [转]浅析线性表(链表)的头插法和尾插法的区别及优缺点
    点击按钮,在textarea光标位置插入值
    优秀学习笔记汇总>o<
    解决excel文件上传时更改选中的文件出现错误net::ERR_UPLOAD_FILE_CHANGED
  • 原文地址:https://www.cnblogs.com/wangqingjiu/p/11178020.html
Copyright © 2020-2023  润新知