如何在Vue插件中调用已挂载或已创建?

时间:2017-12-04 12:47:02

标签: vue.js vuejs2 vue-component

我正在尝试根据这篇文章创建一些插件:

https://alligator.io/vuejs/creating-custom-plugins/

我有一个插件,需要在根Vue实例挂载或创建时运行。到目前为止,我只能看到一种向所有组件注入某种东西的方法,这不是我想要的。

我只需要在主Vue实例安装时执行某些操作。我怎么能用插件做到这一点?

插件中的install方法似乎不起作用,因为这似乎发生在实际的created方法之前。

2 个答案:

答案 0 :(得分:2)

可以有多个根Vue组件。 “根组件”只是使用new语法创建的组件,而不是父组件,因此您可以按如下方式检测:

Vue.mixin({
  created() {
    if (!this.$parent) {
      // This is either the root component or a component
      // created with `new` and no parent
    }
  }
})

答案 1 :(得分:0)

为特定组件仅包含混合包实际上很容易!

在要向其中添加mixin的组件中,像导入其他任何东西一样将其导入,并在组件中包括一个名为mixins的数组,如下所示:

import myMixin from 'src/mixin/myMixin'
export default {
  mixins: [myMixin]
}

然后,您的myMixin代码将如下所示(不要使用全局的Vue.mixin):

export default {
  beforeMount () {
    console.log('Your component is about to be mounted!')
  }
}