Если ты не используешь SSR, то тебе достаточно просто
reactive/
ref объекта, чтоб получить эрзац-стор, тупо:
// где-нибудь
export const basket = reactive([]); // или ref([]) по вкусу.
// везде где надо
import { basket } from './...'
Реактивность будет прекрасно работать.
Почему кто-то использует специальные
store если можно делать так? Потому что сторы учитывают работу в режиме SSR, а также позволяют удобную отладку в случае множества запутанных связей.
Вам я бы тоже рекомендовал использовать таки
store - только
pinia, а не
vuex. Не вижу причин его не использовать.
По поводу
EventBus: с одной стороны новичку её использовать категорически не рекомендуется, т.к. работа со
store куда удобнее, очевиднее и надёжнее. Однако и совсем отрицать её использование тоже не следует, шина отлично подходит для случаев когда мы имеем дело именно с
событиями, а не
изменением состояния. Т.е. послать какой-нить notification или лог - самое оно, использовать для изменения
basket, как в вашем случае - нет.