vuex深入学习 --- State

6 篇文章 0 订阅

vuex深入学习 — State

state在一个应用中是唯一的,也就是只有一个store实例
如何使用:
①直接获取state this.$store.state.***
②动态获取state 在组件中的computed(计算属性)中引入

    computed: {
      count () {
        // 当state发生变化时都会返回状态
        return this.$store.state.count
      }
    },
    watch: {
      count: function (newValue, oldValue) {
        // 监听count 发生变化执行操作
      }
    }

问题: 当一个组件需要获取多个状态时候,将这些状态都声明为计算属性会有些重复和冗余
解决: mapState 辅助函数,它会帮助我们生成计算属性

  //  在单独构建的版本中辅助函数为 Vuex.mapState
  import {mapState} from 'vuex'

  export default ({
    computed: {
      Num () { /* */ },
      // mapState 函数返回的是一个对象
      // 使用扩展运算符将此对象混入到外部对象中
      ...mapState({
        // 箭头函数可使代码更简洁
        count: state => state.count,

        // 传字符串count等同于 'count: state => state.count'
        countAlias: 'count',

        // 当映射的计算属性的名称与 state 的子节点名称相同时,
        // 可以直接给 mapState 传一个字符串数组。
        // 映射 this.count 为 this.$store.state.count
        'count',

        // 如果需要获取组件内的数据, 必须使用常规函数
        countPlusLocalState (state) {
          return state.count + this.local
        }
      })
    }
  })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值