Добрый день!
В общих чертах: фильтруемые данные должны быть иммутабельны (что немного против философии vue). Следовательно, вы в модуле, через который делаете апи колл на получение данных, пишите геттеры на разные "срезы" этого массива.
Ps
Возможно, вам стоит сразу после получения ответа нормализовать данные: разбить на flatten массивы, преобразовать массивы в объект с ключами - айдишниками; иначе если у вас тяжеловесный массив на 10к+ ("огромность" такого массива может не сильно влиять на производительность, все зависит от многих факторов, но у меня такие просадки появились в тот момент, когда я начал обрабатывать порядка 50к плоских объектов) объектов с огромным количеством полей, то все это может начать тормозить, особенно если у вас частые обновления дома, связанные с этим массивом.
+ помните, что после добавления в стор все объекты оборачиваются в специальные vue-конструкции, которые позволяют сделать данные реактивными, в связи с чем может быть сильная просадка производительности при загрузки в стор без асинхронных чанков.
Возможно, вам пригодится
https://github.com/vuex-orm/vuex-orm, особенно если массив имеет несколько повторяющихся сущностней.
ps2 300 объектов - это не огромный массив ;) вам вполне подойдет все, что описано "в общих чертах", оптимизация вряд ли понадобится.