Для начала см .:
https://vuejs.org/v2/api/#Vue -компонент
https://vuejs.org/v2/api/#Vue -использование
Это немного неопределенно сказать «сделать функциональность глобальной» . Необходимо более четко определить, что это означает в каждом случае.
Vue.component
используется для регистрации компонента во всем мире. Это делает его доступным в шаблонах с указанным именем. Таким образом, Vue.component('rainbow', componentDefinition)
позволит вам использовать <rainbow>
во всех ваших шаблонах без необходимости явно импортировать его в эти компоненты. Для получения дополнительной информации о различных способах регистрации компонентов см .:
https://vuejs.org/v2/guide/components-registration.html
Vue.use
используется для вызова плагина. По сути, плагин - это просто функция JavaScript, и он может делать все, что захочет. Эта функция может регистрировать компоненты (используя Vue.component
), но многие плагины делают другие вещи, например, регистрируют директивы или добавляют глобальные миксины.
Вполне возможно, что в примере приложения, которое вы изучаете, плагины - это все регистрация компонентов, что создает впечатление, что Vue.use
во многом совпадает с Vue.component
. Если это так, это просто совпадение. Я предлагаю вам взглянуть на исходный код некоторых плагинов, чтобы получить более полное представление о том, что они делают и как они работают.
Как правило, используются Vue.component
и Vue.use
в главном файле точки входа для вашего приложения. Скорее всего, это будет называться как main.js
. Они могут не вызываться напрямую, например, плагин может вызывать Vue.component
, но глобальный характер их результатов обычно заставляет делать все такие вызовы до запуска самого приложения с помощью new Vue
.
* 1042. * Если у вас есть
Vue.component
или
Vue.use
вызовы внутри
.vue
файла, это говорит о том, что вы делаете что-то не так, даже если это
app.vue
. Файл
.vue
должен просто экспортировать компонент, он не должен иметь глобальных побочных эффектов, таких как регистрация компонентов.