Зачем функция? Делаем геттер, представляющий посты, сгруппированные по категориям:
getters: {
postsByCatId: ({ posts }) =>
posts.reduce((acc, n) => (
(acc[n.catId] = acc[n.catId] || []).push(n),
acc
), {}),
},
Соответственно, в компоненте добавляем свойство, представляющее id категории, и вычисляемое свойство, представляющее массив постов. Можно оформить миксин, если подобное нужно в разных компонентах:
const postsMixin = {
data: () => ({
catId: null,
}),
computed: {
posts() {
return this.$store.getters.postsByCatId[this.catId] || [];
},
},
};