从组件实例获取Vue组件对象(类)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从组件实例获取Vue组件对象(类)相关的知识,希望对你有一定的参考价值。
题
鉴于我在组件上下文中,如何获取组件对象?按组件对象我的意思是你在import Component from 'Component.vue'
时获得的对象。
目前的进展
这是我发现的一种可能性。
const component = {
methods: {
getComponent: () => this,
displayItem () {
console.log('this.getComponent()', this.getComponent()) // undefined
console.log('this', this) // component instance
console.log('component', component) // what I need (component object)
},
},
}
export default component
但缺点是它会杀死IDE支持。
我也手动检查了this
。
理想的称呼
我希望看到的语法近似值:this.$component
。
重点是什么?
- 通过
:is="component"
实例化组件。 - 执行检查实例。
答案
你越接近vm.$options
:
Vue.component('some-comp', {
template: '<p>{{ message }}</p>',
props: {name: String},
data() {
return {
message: 'Open the console!'
}
},
computed: {
example() {
return this.message.toUpperCase();
}
},
watch: {
message() {
console.log('watcher triggered');
}
},
mounted() {
console.log(this.$options);
console.dir(this.$options.__proto__);
}
});
new Vue({
el: '#app'
})
<script src="https://unpkg.com/vue"></script>
<div id="app">
<some-comp :name="'Alice'"></some-comp>
</div>
以上是关于从组件实例获取Vue组件对象(类)的主要内容,如果未能解决你的问题,请参考以下文章