ну а в /api/save я как раз планировал сделать контроллер, который в зависимости от переданного id подгрузит php код из .vue компонента и передаст управление на него
А если нескольким компонентам понадобится одна и та же логика, хотя я планировал, что такого не случится, то можно использовать другой маршрут.
this.$http.post('/api/save', {id: 333, input: input})
с одинаковой логикой со стороны сервера, вы будете контролёры копировать из компонента в компонент?