【发布时间】:2019-05-10 10:21:33
【问题描述】:
我成功地设置了我的第一个 vuex 商店。 一组数据从存储传递到所需的组件并正确呈现。 现在我想从 JSON 文件中获取我的数据,但不能让它工作。 我没有使用 webpack,因为有时我需要在没有这些工具的环境中处理我的项目。
以下操作,无需从 JSON 文件中检索数据:
STORE.JS
Vue.use(Vuex);
const store = new Vuex.Store({
state: {
products: [
{ name: "Avocado Zwem Ring", inventory: 47, unit_price: 77, image:"a.jpg", new:true },
{ name: "Danser Skydancer", inventory: 5, unit_price: 45.99, image:"a.jpg", new:true}
]
},
});
SHOP.VUE
<template>
<comp-products v-bind:products="products"></comp-products>
</template>
<script>
module.exports = {
components: {
'comp-products': httpVueLoader('components/comp-products.vue')
},
computed:{
products(){
return this.$store.state.products
}
}
}
</script>
我尝试了以下方法,但它没有呈现任何内容,也没有返回错误。
STORE.JS
Vue.use(Vuex);
const store = new Vuex.Store({
state: {
products: [],
},
mounted() {
axios
.get("json/products.json")
.then(response => {
this.products = response.data.products;
})
},
});
SHOP.VUE
<template>
<comp-products v-bind:products="products"></comp-products>
</template>
<script>
module.exports = {
components: {
'comp-products': httpVueLoader('components/comp-products.vue')
},
computed:{
products(){
return this.$store.state.products
}
}
}
</script>
products.json
{
"products":[
{
"sku":"1",
"name": "Danser Skydancer",
"inventory": 5,
"unit_price": 45.99,
"image":"a.jpg",
"new":true
},
{
"sku":"2",
"name": "Avocado Zwem Ring",
"inventory": 10,
"unit_price": 123.75,
"image":"b.jpg",
"new":false
}]
}
我确信 json 文件的路径和 axios 的设置是正确的,因为我设法在不使用 vuex 存储的情况下检索和呈现 json 数据。
【问题讨论】: