Использование операторов switch
прекрасно в показанном вами контексте, в этом нет ничего плохого. Что может использовать некоторую работу, так это преобразовать результаты в удобный формат.
Использование Array.prototype.sort()
и Array.prototype.filter()
принесло бы вам большую пользу:
switch (this.selectedFilter) {
case "all":
return productItems.slice().sort((a, b) => a.order - b.order);
case "subscriptions":
return productItems.filter(product => product.type === "recurring");
case "onetime":
return productItems.filter(product => product.type === "onetime");
case "purchased":
return productItems.filter(product => product.purchased);
case "unpurchased":
return productItems.filter(product => !product.purchased);
default:
return [];
}
В целом, неплохо было бы вернуться согласованный тип данных вашей функции, в данном случае массив, следовательно, измененный регистр по умолчанию. Если вам нужно показать заполнитель, когда нет элементов, вы можете обработать это в объявлении шаблона.