<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>