1、为什么要app.use(参数)
注册组件,且注册的组件全局可用,或在vue原型上添加内容。
use参数需要什么类型的?vue规定:参数要么是对象形式,且必须有install这个方法属性,或者参数为函数。
另外:注册全局组件并不是app.use实现的,而是app.use调用了参数中的函数来实现的全局组件注册
2、app.use(参数)做了什么?
1、调用参数中的函数
2、把vue作为参数传递给参数中的函数,调用目标逻辑
import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App)
const obj = {
install(e)
{
//在vue.use(obj)后,就会调用这个install方法,并且将vue作为参数,也就是说vue.use调用后,这个参数e === vue
console.log(e);
}
}
const fn = function(e)
{
//fn是函数形式,在vue.use(fn)调用后,e === vue
console.log(e);
}
app.use(obj).use(fn).mount("#app",true)
上面obj对象中有install方法,满足vue.use的参数形式,因此install会被vue调用,且将vue作为参数传递给install,执行install中的逻辑
上面fn函数是一个函数,同意满足use的参数要求,因此vue会把vue作为参数传递给fn,且执行fn函数的逻辑