Здесь нужно учесть много вещей, и все ответы будут несколько субъективными, так что имейте это в виду. Я не думаю, что какой-то один способ является «правильным». Я обнаружил, что самая простая реализация состоит в том, чтобы иметь единственный экземпляр Vue в app.js, а затем создавать свои компоненты и использовать их в любом месте приложения app. Однако это может быть излишним и может негативно повлиять на вас несколькими способами.
В качестве одного примера, если вы не на 100% привержены использованию Vue, то, скорее всего, вы также захотите использовать jQuery и, возможно, даже некоторые плагины jQuery где-то еще в вашем приложении. jQuery и Vue не очень хорошо играют вместе, если вы не создаете экземпляр jQuery внутри компонентов Vue. По этой причине, если вы планируете использовать другие библиотеки javascript, такие как jQuery, вы можете рассмотреть возможность использования отдельных экземпляров Vue с меньшими областями действия везде, где вам нужно использовать компонент.
Если, однако, вы используете Vue, чтобы помочь с некоторыми глобальными задачами, такими как зажим строки или усечение, тогда вам действительно лучше иметь глобальную установку.
Что касается других соображений, таких как накладные расходы, я полагаю, что любой из этих методов, вероятно, будет примерно четным. Когда вы загружаетесь глобально, вы получаете преимущество кэширования в браузере, даже если скрипт находится на каждой странице. Когда вы загружаете страницу за страницей, вы получаете то преимущество, что вам не нужно загружать сценарии повсюду, а использовать их только по мере необходимости. В любом случае, издержки Vue в современном Интернете довольно минимальны, поэтому я не думаю, что это вообще должно повлиять на ваше решение.
Это мои мысли.