vue的computed参数可以是function吗?

computed:mapState({
        count:state=>state.count
 })

上面代码是使用vuex时设置的computed,mapState是一个函数,但是我在vue的官网上看到computed的参数是一个对象,请问这是为什么?

阅读 5.8k
4 个回答

mapState是一个函数。mapState()是一个函数吗?

function fun () {return {}}
fun
fun()
// 这俩啥区别

请你仔细看看,computed 是个函数吗?

computed: mapState()

如果还不明白的话:

function mapState() {
  return {}
}
...
computed: mapState() // computed 是个函数吗?

如果还不明白的话,建议你暂停 Vue 的学习,先补一补 javascript 基础

希望对你有帮助

import { mapState } from 'vuex'

export default {
  // ...
  computed: mapState({
    // 箭头函数可使`请输入代码`代码更简练
    count: state => state.count,

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

    // 为了能够使用 `this` 获取局部状态,必须使用常规函数
    countPlusLocalState (state) {
      return state.count + this.localCount
    }
  })
}

这个是官网的一个例子 有什么区别?

建议你这么写:

computed: {
      ... mapState([
        'getAddressNumber'
      ]),
      ...
    },

因为computed的用途不只vuex,你那样写,别的就不好用了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题