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

Posted

技术标签:

【中文标题】如何通过 VITE 在 Data() Vue 3 组件中使用 JSX/HTML 代码【英文标题】:How to use JSX/HTML code in Data() Vue 3 components with VITE 【发布时间】:2022-01-16 18:20:15 【问题描述】:

我正在使用 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?

【问题讨论】:

这个语法错误:v-for="item, index in testData"应该是v-for="(item, index) in testData" 【参考方案1】:

这是 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>

【讨论】:

是的,我确定。屏幕显示了 DsJsx 在这种情况下得到了什么 ibb.co/6B2s3V9 无论如何,你可以试试可能的例子吗?【参考方案2】:

添加到 vite.config.js

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

lang="jsx"&lt;script&gt;

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于如何通过 VITE 在 Data() Vue 3 组件中使用 JSX/HTML 代码的主要内容,如果未能解决你的问题,请参考以下文章

如何将打字稿添加到 Vue 3 和 Vite 项目

如何在 vue 3 vite 中使用 sass 扩展?

Vite / Vue 3:使用图像源作为道具时“未定义要求”

如何使用 vite 和 yarn 创建 vue 项目

如何使用vite搭建Vue3.0

如何使用vite搭建Vue3.0