반응형
    
    
    
  vuex 스토어에서 JSON 데이터를 사용하는 방법(웹 팩 없음)
첫 번째 vuex 저장소를 성공적으로 설정했습니다.저장소에서 원하는 컴포넌트로 데이터 배열이 전달되어 올바르게 렌더링된다.이제 JSON 파일에서 데이터를 가져오고 싶은데 제대로 작동하지 않습니다.웹 팩을 사용하지 않습니다. 왜냐하면 이러한 도구를 사용할 수 없는 환경에서 프로젝트를 수행해야 할 경우가 있기 때문입니다.
다음은 JSON 파일에서 데이터를 가져오지 않고 작동합니다.
스토어
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>
 
다음을 시도했지만 아무것도 렌더링되지 않고 오류가 반환되지 않습니다.
스토어
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
      }]
}
 
vuex 스토어를 사용하지 않고 json 데이터를 검색 및 렌더링할 수 있었기 때문에 json 파일에 대한 경로와 axios 설정은 정확하다고 확신합니다.
저장소에서 변수를 설정하려면 돌연변이를 사용해야 합니다.스토어 셋업 후 api를 호출한 후 결과 데이터로 스토어상의 돌연변이를 호출합니다.
Vue.use(Vuex);
const store = new Vuex.Store({
    state: {
        products: [], 
    },
    mutations: { //Mutations are like setters
        SET_PRODUCTS: (state, products) => { //capitalization is good-practice for vuex-mutations
            state.products = products;
        }
    }
});
const setProductToStore = () => {
    axios
    .get("json/products.json")
    .then(response => {
        store.commit('SET_PRODUCTS', response.data.products);
    })   
}
setProductToStore();
 
이런 게 효과가 있을 거야
다음과 같이 data.json 파일을 간단하게 Import할 수도 있습니다.
import data from './data';
export default new Vuex.Store({
    state: {
        test: data
    }
});
언급URL : https://stackoverflow.com/questions/56075612/how-do-i-use-json-data-with-vuex-store-no-webpack
반응형
    
    
    
  'itsource' 카테고리의 다른 글
| Vuetify v-tabs v-tab 항목 오버플로 창 너비 (0) | 2022.08.15 | 
|---|---|
| 수집되지 않은 참조 오류:Index.html에 vue 설정을 넣을 때 Vue가 정의되지 않음 (0) | 2022.08.15 | 
| Android 애플리케이션의 빌드/버전 번호는 어떻게 얻을 수 있습니까? (0) | 2022.08.15 | 
| visual studio 2017 스파 템플릿 vue js 누락 (0) | 2022.08.15 | 
| gcc - O0은 여전히 "미사용" 코드를 최적화합니다.그것을 변경할 수 있는 컴파일 플래그가 있습니까? (0) | 2022.08.15 |