Vue.prototype:你可能会在很多组件里用到数据/实用工具,但是不想污染全局作用域。这种情况下,你可以通过在原型上定义它们使其在每个 Vue 的实例中可用
import echarts from 'echarts'
Vue.prototype.$echarts = echarts
Vue.component:注册全局组件,第一个参数是调用组件时写的组件名,第二个参数是引入组件时写的标签名称,常用于注册自定义组件
import Children from './views/Children.vue';//引入组件
Vue.component('Children ',Children )//注册组件
Vue.use:注册全局插件,会自动阻止多次注册相同插件,届时即使多次调用也只会注册一次该插件,插件应该暴露一个 install 方法,当 install 方法被同一个插件多次调用,插件将只会被安装一次。
如果插件是一个对象,必须提供 install 方法。
如果插件是一个函数,它会被作为 install 方法。install 方法调用时,会将 Vue 作为参数传入。
import Plugin from "./plugin/plugin"
Vue.use(Plugin)
Vue.prototype与Vue.use使用区别:vue.prototype不需要实现install方法但是灵活性不如Vue.use(), Vue.prototype适合于非Vue生态的插件,而Vue.use()适合于Vue生态内的插件。而且,Vue.use的实现依赖于Vue.prototype,最本质的理解就是Vue.use包裹着Vue.prototype进一步的封装了一次。
针对Vue编写的插件用Vue.use导入
不是针对Vue编写的插件用Vue.prototype导入