如果要获取store里面的state的city属性。首先来看看没有使用mapState的情况,
{{this.$store.state.city}}
再来看看使用mapState后
{{this.city}}
那么为什么会这样呢?先来看看官方的定义:当一个组件需要获取多个状态时候,将这些状态都声明为计算属性会有些重复和冗余。为了解决这个问题,我们可以使用 mapState 辅助函数帮助我们生成计算属性,让你少按几次键:
首先什么是状态?即state,state又是用来存储一些数据的,所以不难理解。
看代码
import {mapState} from "vuex"
// 使用mapState,此时,city已经被映射了,所以可以直接使用this.city去获取属性值
computed:{
//意思是将vuex中的city数据映射到组件的computed属性里
...mapState(["city"])
}
还有一种使用方法,意思是将store里面的state里面的city属性映射到computed属性中的currentCity中。即currentCity代表了$store.state.city
computed:{
...mapState({
currentCity:"city"
})
}