vuex 中的 mapState 辅助函数的作用及用法
时间: 2024-05-06 13:15:02 浏览: 91
`mapState` 是 Vuex 中的一个辅助函数,它可以将 store 中的 state 映射到组件的 computed 计算属性中,方便组件直接使用。它的作用可以简化组件中获取 state 的代码,使代码更加简洁和易读。
`mapState` 的语法如下:
```javascript
import { mapState } from 'vuex'
export default {
computed: {
...mapState({
// 将 `this.count` 映射为 `this.$store.state.count`
count: state => state.count,
// 将 `this.count` 映射为 `this.$store.state.count`
// 并提供了一个自定义的计算属性名 `countAlias`
countAlias: 'count'
})
}
}
```
`mapState` 接收一个对象作为参数,对象中的每一个属性都是一个函数或者一个字符串,函数用于计算 state 中的值,字符串则是指定 state 中的属性名。这些计算属性将会被混入到组件的 computed 计算属性中。
在组件中使用 `mapState` 返回的计算属性时,可以直接使用计算属性名即可,无需使用 `$store.state` 来获取 state 中的值。
```javascript
<template>
<div>
<p>count: {{ count }}</p>
<p>countAlias: {{ countAlias }}</p>
</div>
</template>
<script>
import { mapState } from 'vuex'
export default {
computed: {
...mapState({
count: state => state.count,
countAlias: 'count'
})
}
}
</script>
```
以上代码中,组件中的计算属性 `count` 和 `countAlias` 都是通过 `mapState` 辅助函数从 Vuex 的 state 中映射得来的。这样,我们就可以很方便地在组件中使用这些计算属性了。
阅读全文