반응형
여러 v-for 루프...다른 방법은 없을까?
vue와 함께 vuex 스토어를 사용하지만 루프 때문에 vuex에서 값을 가져오는 데 문제가 발생합니다.
저희 매장은 다음과 같습니다.
categoires: [
{
name: 'category1',
id: '1',
path: '/category1',
subcategories: [
{
name: 'subcat1',
id: '11'
subsub: [
{
name: 'subsub1',
id: '111'
},
{
name: 'subsub1',
id: '111'
},
],
},
],
},
],
<span v-for="(category, index) in categories.categories" :key="index" v-if="category.name === 'category1'">
<span v-for="(sub, index) in category.subcategories" :key="index">{{sub.name}}
</span>
</span>
그 일을 끝낼 다른 방법이 있나요?
건배.
데이터를 필터링할 수 있습니다.category.name
.
데모 https://jsfiddle.net/sumitridhal/5zyzuxqy/1/
JS
const store = new Vuex.Store({
state: {
categoires: [{
name: 'category1',
id: '1',
path: '/category1',
subcategories: [{
name: 'subcat1.1',
id: '11',
subsub: [{
name: 'subsub1',
id: '111'
},
{
name: 'subsub1',
id: '111'
},
]
},{
name: 'subcat1.2',
id: '11',
subsub: [{
name: 'subsub1',
id: '111'
},
{
name: 'subsub1',
id: '111'
},
]
}]
},
{
name: 'category2',
id: '2',
path: '/category2',
subcategories: [{
name: 'subcat2',
id: '22',
subsub: [{
name: 'subsub2',
id: '222'
},
{
name: 'subsub2',
id: '222'
}
]
}]
}
]
},
getters: {
getCategoires: state => () => state.categoires
}
})
new Vue({
el: '#app',
store,
data: {
categories: null
},
created() {
this.categories = this.$store.getters.getCategoires();
},
computed: {
filteredData: function() {
var filter = this.categories.filter(function(category) {
//you filter logic here
return category.name === 'category1';
});
console.log(filter[0]);
return filter[0];
}
}
})
HTML
<div class="container" id="app">
<span v-for="(sub, index) in filteredData.subcategories" :key="index">{{sub.name}}
</span>
</div>
언급URL : https://stackoverflow.com/questions/43732284/vue-multiple-v-for-loop-is-there-any-other-way
반응형
'programing' 카테고리의 다른 글
최적화되지 않는 무한 빈 루프를 만들려면 어떻게 해야 합니까? (0) | 2022.08.11 |
---|---|
vue 앱 새로 고침: GET /path를 가져올 수 없음 (0) | 2022.08.10 |
'vue'에서 'createApp' 내보내기를 찾을 수 없습니다. (0) | 2022.08.10 |
JPA OneToMany가 하위 항목을 삭제하지 않음 (0) | 2022.08.10 |
Java로 정렬된 컬렉션 (0) | 2022.08.10 |