1 回答

TA贡献1818条经验 获得超7个赞
先写下发现的问题吧
computed是可以依赖vuex中数据并获取数据的。
return this.$store.state.products改为return this.$store.state.products.products就可以了。
至于为什么多了一层。是因为modules,分了模块的会将模块内的state放在state[模块名]这个对象里
const store = new Vuex.Store({
modules: {
a: moduleA,
b: moduleB
}
})
store.state.a // -> moduleA 的状态
store.state.b // -> moduleB 的状态
可以看到。moduleA的状态全在store.state.a这个对象中。
你的问题
为什么没更新,因为获取到的是一个对象。{products:[]},没有title等属性,无法渲染,当然直接输出{{product}}还是能看到更新后的数据的。
为什么使用了getters就可以正确获取state了呢,因为getters默认获取的是同modules内的数据。
那我估计你对派生的理解也没有疑问了。好比computed的作用,我们用watch和methods配合state也可以做到,为什么要用computed?因为使用computed有明确的依赖关系。
没有找到匹配的内容?试试慕课网站内搜索吧
添加回答
举报