在数据中渲染 vue 组件

时间:2020-12-22 11:21:15

标签: javascript vue.js dom apexcharts

我尝试为 apexcharts 制作自定义工具提示,例如:https://apexcharts.com/docs/options/tooltip/#

tooltip: {
  custom: function({series, seriesIndex, dataPointIndex, w}) {
    return '<div class="arrow_box">' +
      '<span>' + series[seriesIndex][dataPointIndex] + '</span>' +
      '</div>'
  }
}

它的工作原理,但是当我设置返回一些 vue 组件时,什么都没有显示。

tooltip: {
  custom: function({series, seriesIndex, dataPointIndex, w}) {
    return '<MyComponent/>'
  }
}
<template>
   <div>Just simple component</div>
</template>

<script>
export default { name: "MyComponent" }
</script>

为什么会发生这种情况以及如何解决?

1 个答案:

答案 0 :(得分:1)

要使 Vue 正确渲染组件,您必须在自定义工具提示函数中告诉它:

tooltip: {
  custom: ({series, seriesIndex, dataPointIndex, w}) => {
    // create component constructor
    var TooltipComponent = Vue.extend({
      template: '<my-component/>'
    });
    // create an instance of tooltip and mount it
    var tooltip = new TooltipComponent();
    tooltip.$mount();
    // Return the html
    return tooltip.$el.outerHTML;
  }
}

如果您需要数据或其他反应性,它会变得有点复杂,请参阅 https://vuejs.org/v2/api/#Vue-extend 了解更多信息。