sortby vue

<template>
  <div>
    <h1>Sortable List</h1>
    <ul>
      <li v-for="item in sortedItems" :key="item.id">
        {{ item.name }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: 'Item 1' },
        { id: 2, name: 'Item 2' },
        { id: 3, name: 'Item 3' },
        // Add more items as needed
      ],
      sortKey: 'name',
      sortOrder: 1,
    };
  },
  computed: {
    sortedItems() {
      return this.items.slice().sort((a, b) => {
        const keyA = a[this.sortKey];
        const keyB = b[this.sortKey];

        if (keyA < keyB) return -1 * this.sortOrder;
        if (keyA > keyB) return 1 * this.sortOrder;

        return 0;
      });
    },
  },
  methods: {
    sortBy(key) {
      if (this.sortKey === key) {
        this.sortOrder *= -1;
      } else {
        this.sortKey = key;
        this.sortOrder = 1;
      }
    },
  },
};
</script>

<style scoped>
/ Add your styles as needed /
</style>