我正在尝试根据这篇文章创建一些插件:
https://alligator.io/vuejs/creating-custom-plugins/
我有一个插件,需要在根Vue实例挂载或创建时运行。到目前为止,我只能看到一种向所有组件注入某种东西的方法,这不是我想要的。
我只需要在主Vue实例安装时执行某些操作。我怎么能用插件做到这一点?
插件中的install
方法似乎不起作用,因为这似乎发生在实际的created
方法之前。
答案 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!')
}
}