组件名称为字符串

时间:2019-07-01 14:04:01

标签: vue.js

我有一个注册的自定义过滤器组件,例如:

import Filter from "../components/DataTableComponent/StringFilter";

components: {
  Filter
},

我可以在vue2-datatable列中使用此组件,例如:

var col : { title:"Foo", field:"Bar", comp: Filter }

基本上,我想从服务中给该组件一个名称作为字符串,然后像上面那样呈现它。

var col : { title:"Foo", field:"Bar", comp: "Filter" }

1 个答案:

答案 0 :(得分:1)

要求是您尝试将component对象发送到要发送的任何位置。因此,将其存储到当前工作的实例并动态使用它只是一个基本概念。

服务会向您发送组件名称-"Filter",并且您正在将相同名称的组件导入文件。

只需将其存储到对象中

import Filter from "../components/DataTableComponent/StringFilter";

// store it to local object
const componentReference = { Filter }

// Let say service sent you this name
const componentNameSentByService = "Filter"

//reference it to using the name dynamically using object
var col : { title:"Foo", field:"Bar", comp: componentReference[componentNameSentByService] }