Можно просто повесить на эти кнопки событие, а в нем прослушку через event bus. А в нужном компоненте слушать его в mounted и отправлять в нужный метод
На скорую руку накидал, чтобы суть была понятна:
main.js
import Cart from './components/Cart'
import EventBus from './common/event-bus.js';
var app = new Vue({
el: '#app',
components: {
Cart
},
mounted() {
document.addEventListener('click', addProduct, false);
function addProduct(event) {
if (event.target.classList.contains('btnToCart')) {
EventBus.$emit('changeCart', 'твой атрибут сюда');
}
}
}
})
cart.vue
import EventBus from '../common/event-bus.js'
export default {
data() {
return {
content: {}
};
},
mounted() {
EventBus.$on('changeCart', array => {
this.addProduct(array);
});
},
created() {
},
methods: {
addProduct(newItem){
console.log(newItem)
},
}
}