반응형
Vuex 저장소의 페이지 지정
나는 https://github.com/vueschool/learn-vuex,에서 이 멋진 쇼핑 카트 레포를 복제했고, 다음과 같은 자료를 얻는다.
ProductList.vue
<template>
<div>
<ul>
<li v-for="product in products">
- {{product.name}} - {{product.price}}
</li>
</ul>
</div>
</template>
<script>
methods: {
...mapActions({
fetchProducts: 'products/fetchProducts'
})
}
</script>
export default new Vuex.Store({
state: {
products: {},
},
actions: {
fetchProducts({commit},data) {
axios.get(`api/product`).then((response) => {
commit('updateProducts', response.data);
})
},
mutations: {
updateProducts (state, products) {
state.products = products
}
}
});
결과를 페이지 번호로 지정하려고 하는데 그런 방향으로 도움이 필요한데, 미리 고맙게도 페이지 지정 상태를 만들어야 할까, 아니면 vuex 저장소에 새 모듈을 만들어야 할까?
다음을 시도해 보십시오.
나는 그 중 하나를 사용한다.RenderlessLaravelVuePagination
페이지 번호 매기기 구성 요소
<pagination :data="products" @pagination-change-page="getProducts"></pagination>
그리고 나머지 코드는 아래와 같다.
export default {
name: 'ProductList',
mounted() {
this.getProducts();
},
methods: {
getProducts(page = 1){
this.$store.dispatch('getProducts',{
page: page
});
},
}
이게 너에게 효과가 있길 바라.
악시오 포스트에서 돌아오는 메타 데이터를 저장하려면 메타 객체를 정의해야 한다.그러면, 너는 너의 vue에 있는 메타 오브젝트를 사용할 수 있어.
다음과 같은 작업을 수행하십시오.
export default new Vuex.Store({
state: {
products: {},
productsMeta: {}
},
actions: {
getProducts({commit},data) {
axios.get(`api/product`).then(response => {
this.productsMeta = response.meta;
}).commit('updateProducts', response.data);
})
},
mutations: {
updateProducts (state, products) {
state.products = products
}
}
});
참조URL: https://stackoverflow.com/questions/57988462/pagination-in-vuex-store
반응형
'programing' 카테고리의 다른 글
Vuetify의 팹 버튼 아이콘이 수직으로 중앙에 위치하지 않음 (0) | 2022.04.29 |
---|---|
데이터 테이블(v-data-table) Vuetify Data Table - 특정 열의 값을 조건부로 스타일 지정하는 방법 (0) | 2022.04.28 |
불변의 의미는 무엇인가? (0) | 2022.04.28 |
Vuex에서 동일한 구성 요소에 대해 양방향 데이터 바인딩을 구현하는 다양한 방법 (0) | 2022.04.28 |
콘솔에서 실행되지 않는 Windows에서 Java 프로세스의 스레드 및 힙 덤프를 가져오는 방법 (0) | 2022.04.28 |