SeouliteLab

[Vue.js] 필터링/정렬 결과 표시 본문

카테고리 없음

[Vue.js] 필터링/정렬 결과 표시

Seoulite Lab 2024. 5. 2. 10:15
<template>
  <div>
    <h2>필터링된 아이템</h2>
    <ul>
      <li v-for="filteredItem in filteredItems" :key="filteredItem.id">
        {{ filteredItem.name }}
      </li>
    </ul>
  </div>
</template>

<script>
import { computed, reactive } from 'vue';

export default {
  setup() {
    const items = reactive([
      { id: 1, name: '사과', category: '과일' },
      { id: 2, name: '당근', category: '채소' },
      { id: 3, name: '딸기', category: '과일' },
      { id: 4, name: '고구마', category: '채소' },
    ]);

    // 계산된 속성을 사용하여 필터링된 아이템을 반환
    const filteredItems = computed(() => {
      return items.filter(item => item.category === '과일');
    });

    return { filteredItems };
  }
};
</script>

<style scoped>
/* 컴포넌트에만 적용될 스타일을 작성할 수 있습니다. */
</style>

위 예제에서는 원본 데이터를 수정하지 않고 필터링된 결과를 표시하는 방법을 보여줍니다.

Vue에서는 필터링된 결과를 표시하기 위해 계산된 속성을 활용할 수 있습니다. 계산된 속성은 종속성이 변경될 때마다 다시 계산되는 특성을 가지고 있으므로, 필터링 또는 정렬된 결과를 실시간으로 업데이트할 수 있습니다.

위 예제에서는 items 배열을 반응형으로 선언하고, 이를 기반으로 필터링된 아이템을 계산된 속성으로 반환합니다. 이렇게 하면 원본 데이터를 변경하지 않고도 필요에 따라 동적으로 데이터를 필터링할 수 있습니다.