Vuex 属性-样式访问说明

Vuex Property-Style Access Clarification

更新: 如何从文档中知道正在使用 virtual getter/setter ?仅仅是来自 JavaScript 的工作经验吗?这只是 JavaScript 中的常见模式吗?抱歉新手问题

原文: 在 Vuex 文档 (https://next.vuex.vuejs.org/guide/getters.html#property-style-access) 中,它定义了一个 getter with:

  getters: {
    doneTodos (state) {
      return state.todos.filter(todo => todo.done)
    }
  }

然后使用 getter 和:

store.getters.doneTodos

根据我对JavaScript的基本理解,doneTodos似乎是一个函数。那么这怎么行不通呢?:

store.getters.doneTodos()

基于@Daantje 和@Lawrence Cherone 的评论:

Vuex 的 getter 和 setter 就像任何语言中的虚拟 getter 和 setter。请参阅 MDN 文档 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set and https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get

VueJS 在这里实现它们:https://github.com/vuejs/vuex/blob/96a265a345c76ec7d0f81a115aef74b7eda89452/src/store.js#L454