如何在基于类的vue组件中加载动态组件

时间:2020-05-01 18:39:08

标签: javascript typescript vue.js

我有两个组件正在尝试使用对象映射动态加载。

  1. 信息(基于选项)
  2. SearchBar(基于类)

它适用于基于选项的选项,但是当我尝试加载类似的基于类的组件时,得到的_currentTabundefined。我尝试使用new SearchBar,但这也不起作用。

Vuex模块。

export default class Sidebar extends VuexModule {
    private _currentTab: object = tabs.SearchBar;
}

标签表

import SearchBar from "@/components/Tabs/SearchBar.vue";
import Info      from "@/components/Tabs/Info.vue";

export default {
    SearchBar : SearchBar,
    Info      : Info,
}

侧边栏组件

<div class="tab">
    <component v-bind:is="currentTab"></component>
</div>
import {Component, Vue} from 'vue-property-decorator';
import {mapGetters}     from 'vuex';

@Component({
    computed: {
        ...mapGetters({
            currentTab    : 'currentTab',
        }),
    },
})
export default class Sidebar extends Vue {

}

信息组件(基于选项)

export default {
    data() {
        return {}
    },
}

SearchBar组件(基于类)

import {Component, Vue} from 'vue-property-decorator';
import {mapActions}     from 'vuex';

@Component
export default class SearchBar extends Vue {

}

1 个答案:

答案 0 :(得分:0)

对于动态导入,我使用:

  components: {
    History: () => import("./History"),
    MenuCardRight: () => import("@/components/MenuCardRight")
  },