为什么使用vuex将mapState存储在计算而非数据中?

时间:2019-06-05 21:49:10

标签: vue.js vuex

我刚刚使用vuex + Vue.js演示了一个非常快速的简单演示,因此,到目前为止,我具有以下商店代码:

export default new Vuex.Store({
  state: {
      title : 'I am the title ! Tanos avengers: End game !',
      links : [
        'http://amazon.com',
        'http://google.com',
        'http://flipkart.com',
      ]
  },
  getters : {
    countLinks : state => {
      return state.links.length;
    }
  },
  mutations: {
    ADD_LINK : ( state , link ) => {
      state.links.push( link );
    }
  }
});

现在,当我使用此商店并将状态导入组件时,我将执行以下操作:

import { mapState } from 'vuex'; 

以及组件的computed内部属性:-

computed : {
    ...mapState({ 
      title : 'title', 
      links : 'links' 
    })
},

但是为什么将...mapState放在computed而不是data里面呢?数据是否应该存储与组件相关的所有属性?

1 个答案:

答案 0 :(得分:1)

因此computed property基本上是与组件相关的任何属性,而不仅仅是存储在内存中的简单信息,例如字符串,数字或JS对象。

由于Vue必须进入Vuex并检查this。$ store.state.title是什么,因此即使您不是像示例中那样自己实现计算,也可以算作计算,这使其成为计算属性。在Vue指南上。