如何在 Data() Vue 3 组件中使用 JSX/HTML 代码和 VITE

How to use JSX/HTML code in Data() Vue 3 components with VITE

我正在使用 rollup.js、Vue 3 创建一个设计系统。

我有一个输出数组内容的组件

<template v-for="item, index in testData" :key="index">
  <DsJsx :render="item" />
</template>

测试数据:

data() {
 return {
  testData: [
    {
      testBlock:
      <div>
        <b>Column name 2</b> // <-- html code
      </div>,
    },
  ],
};

},

DsJsx.vue

并且这段代码可以正常工作。

但是当我尝试在 Vite.js 中使用这个组件时,我得到了这个错误。

如何才能在Vite项目中的数据中使用html?

这是 Vue render 函数的无效语法,您确定 DsJsx.vue 显示来自 testBlock 的文本吗?

下面是有效的例子:

测试数据

....
// As string
testBlock: "<div> <b>Column name 2</b> </div>"
....

DsJsx.vue

<script>
export default {
  name: "HelloWorld",
  props: {
    element: String,
  },
  render(h) {
    return h("div", {
      domProps: { innerHTML: this.element }
    });
  },
};
</script>

添加到vite.config.js

import vueJsx from '@vitejs/plugin-vue-jsx';
.....
plugins: [
    vueJsx({}),
],

lang="jsx"<script>