Смотря в каком контексте.
Последний раз я вставлял svg во vue компонент с помощью axios. Потом прекрасно можно взаимодействовать с ним - менять цвета и тп.
Выглядит примерно так - отправляешь axios запрос на путь к своей картинке и потом контейнеру, куда ты хочешь вставить svg добавляешь innerHtml равный ответу axios.
Получается асинхронно да, но тем не менее всё работает прекрасно.
const result = await localAxios.get(PATH)
container.innerHTML = result.data
PATH - путь до svg. Типа './public/assets/svg/logo.svg'
localAxios - инстанс экземпляра axios
Если вынести путь в пропсы, получится прекрасный переиспользуемый компонент.