共同点:
Vue.use( ) 和 Vue.prototype.xxx 两种方式都可以引入插件,它们都是将 插件挂载到 Vue 的实例上,这样我们就可以在全局使用这个插件。
区别:
1、Vue.use
①.不是为了vue写的插件(插件内要处理)不支持Vue.use()加载方式。
②.Vue.use()的参数是{ object || Function },如果参数是对象则必须提供 install 方法,如果参数是函数则将参数作为 install 方法,install 方法调用时会将 Vue 作为参数传入。Vue.use 会自动阻止多次引入相同插件,插件只会被安装一次。
如何使用?
当引用的插件里面写了install方法,调用方法就直接调用install方法里的,如在main.js中:
import Vant from 'vant';
Vue.use(Vant);
//页面中调用:this.$toast('登录失败!')【直接调用vant里的组件,但是组件首字母要小写】、
import ElementUI from 'ElementUI';
Vue.use(ElementUI);
Vue.use(require('vue-moment'));
//页面中调用:this.$moment.xxxx
注意: Vue.use 方法必须在 new Vue() 之前被调用。
2、Vue.prototype.xxx
大家可能在很多组件里都有用到某些插件,但是不想污染全局作用域。这种情况下,你可以通过在原型上定义它们使其在每个 Vue 的实例中可用。
如何使用?
引用的插件里没有install方法,使用通过exportdefault暴露对象调用接口的方式,如在main.js中:
import echarts from 'echarts';
Vue.prototype.$echarts = echarts;
//页面中调用:this.$echarts.xxxx
补充 new Vue()
非vue官方库不支持new Vue()方式。【vue官方库–比如:router、store】