先说需求:
很简单,就是一个 ProductList.vue
组件显示商品信息列表
遇到的问题:
在使用 Vuex
对其状态管理时,更改了 state
中的 products
值之后,视图不更新。
我的代码如下
先看 store.js
然后,我在 ProductList.vue
中是这样写的
这里代码简化了很多。
程序运行的结果是: template
中的 products
的值为 []
然后,我在 store.js
中使用了 getters
对象,代码这样写:
相应的改变 ProductList.vue
中 computed
,代码如下:
然后,就能正常的显示 products
。
那么我的问题就是:
在未使用 getters
时,mutations
执行之后,改变了 products
的值,那么相应的在 computed
中是不是也应该发生了改变呢?那么为什么视图上不更新呢?
Vuex
中的 Getters
在官方文档中的描述意思大概是 state
中一些派生的状态,可理解为 Vue
中的 computed
。 想问这里的state
中的 products
和 getters
中的 allProducts
表达的是同一个内容,没有体现出派生状态的意思啊?想问就是如何更好的理解 getters
和computed
?
computed
计算属性,原数据
发生改变时,派生数据
同步更新,但是这里只是获取 state
中的 products
,为什么要使用 getters
才可以呢?
问题有点多,新手一枚,望人帅心善的程序员兄弟们多多指教,感激不尽。
qq_笑_17
相关分类