Vue.js 为什么使用vuex会将mapState存储在computed而不是数据中?
我刚刚用vuex+Vue.js制作了一个非常简单的演示,因此我现在有以下商店代码:Vue.js 为什么使用vuex会将mapState存储在computed而不是数据中?,vue.js,vuex,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',
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 : {
...mapState({
title : 'title',
links : 'links'
})
},
但是为什么…mapState
被放在computed
中而不是data
?数据不是应该存储与组件相关的所有属性的地方吗?因此,基本上是与组件相关的任何属性,而不仅仅是存储在内存中的简单信息,如字符串、数字或JS对象
由于Vue必须进入Vuex并检查这个.store.state.title是什么,因此它算作一个计算,这使它成为一个计算属性,即使您自己没有像Vue指南中的示例那样实现计算