从组件实例获取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

重点是什么?

  1. 通过:is="component"实例化组件。
  2. 执行检查实例。
答案

你越接近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组件对象(类)的主要内容,如果未能解决你的问题,请参考以下文章

Vue 类组件属性未在实例上定义

使用Android导航组件时如何从后台获取片段?

如何将数据从 Vue 实例传递给嵌套组件

如何将数据从 Vue 实例传递给嵌套组件

VUE从入门到入坑—06. 父子组件通信 / 几种常用的第三方组件库

如何使用导航架构组件从片段中获取结果?