Как сделать сортировку в компоненте Vue.js?
Добрый день,
от вопроса попахивает холиваром, но я не уверен в необходимости отдельного компонента сортировки. Я бы делал что-то такое:<template>

  <ul>
    <li @click = "currentSorting = 'name'"> byName </li>
    <li @click = "currentSorting = 'price'"> byPrice </li>
  </ul>

  <app-product v-for="product in productsBy" 
    :key="product.id" 
    :product="product">
  </app-product>
</template>

<script>
  import AppProduct from './app-product.vue';

  export default {
    name: 'products-list',
    components: { AppProduct },
    data() {
      return {
        currentSorting: 'name',
        products: [ {id: 'sdfsdfsdf}, {id: '121qwqwe'}, {id: '2oo23o'} ]
      }
    },
    computed: {
      productsBy: function() {
        switch(this.currentSorting) {
          case 'name': return this.products
          case 'price': return this.products
        }
      }
    }
  }
</script>
Я бы сделал в качестве props способы сортировки, а по клику - emit события в родительский компонент, который сортирует как надо. В самом компоненте с контролами сортировки я бы ничего с данными не делал.
Ну и если углубляться дальше (например у нас компонент, который содержит компонент сортировки и компонент-список, и список мы не передаем через props), то мы приходим к vuex. Хотя в данном случае он только усложнит, но при увеличении количества данных - уже нет.