Все компоненты должны быть переиспользуемыми. Если у ваших компонентов есть много общих признаков, то их можно вынести в примесь (mixin) или в сервис, если вы используете vue3
Такой qr-код генерирует платный-сервис qrcode-monkey, так что рабочий пример вам никто не предоставит. Ваше vue-приложение делает post-запрос определённого формата и в ответе получает изображение, которые вы встраиваете в ваше приложение. Подробнее здесь.