在Vue js中使用原型和插件之间的区别?

时间:2017-12-15 10:20:06

标签: javascript ecmascript-6 vuejs2

我需要在我的vue js项目中使用简单的跟踪服务......

在我的app.js中,我可以通过两种方式使用它......

例如: -

1)创建原型:

import moment from 'moment';
Object.defineProperty(Vue.prototype, '$moment', { value: moment });

2)使用插件将服务合并到其中:

import axios from 'axios';

export default {
  install: function(Vue,) {
    Object.defineProperty(Vue.prototype, '$http', { value: axios });
  }
}

两者都使用原型,两种方式都适合我......我只需要知道这两种方法之间的区别......

1 个答案:

答案 0 :(得分:3)

插件应该具有您使用的install属性:

const MyPlugin = {
    install: function(Vue,) {
        Object.defineProperty(Vue.prototype, '$http', { value: axios });
    }
}

当您使用插件时,您应该调用Vue.use()方法

Vue.use(MyPlugin);

this.just调用插件上的install方法

在您的情况下,您只是在Vue上设置原型。

插件主要用于开发第三方库或资产以纳入其他vuejs项目。

例如,考虑您开发了一个可供其他人使用的vue组件;

您可以定义一个插件:

import MyComponent from './path'

const MyPlugin = {
    install: function(Vue,) {
        Vue.component('my-component', MyComponent);
    }
}

export MyPlugin;

现在,当您在npm上发布插件时,其他人可以按如下方式使用您的组件:

import MyComponent from 'MyComponent'


Vue.use(MyComponent);

现在my-component可在全球任何其他组件中使用,可用作:

<my-component></my-component>my-component>