You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue中能否实现HTML代码的声明式渲染?如何强制渲染setup内生成的HTML内容?

在Vue 3中实现声明式渲染HTML内容

当然可以实现你想要的效果!在Vue 3里,如果你需要渲染由变量或函数生成的原始HTML,不能用普通的双大括号{{ }}插值(因为它会自动转义HTML标签),而是要使用**v-html指令**来完成这个需求。

修改后的示例代码

下面是针对你给出的代码调整后的实现:

<template>
  <div v-html="aFunctionOrAVariable"></div>
</template>

<script setup>
import { ref } from 'vue'

let aFunctionOrAVariable = ref('<div>some text</div>')
</script>

为什么这个方法有效?

  • 双大括号插值的作用是将数据解析为纯文本,所以任何HTML标签都会被转义成字符串显示;
  • v-html指令则会将绑定的字符串当作HTML进行解析,并插入到DOM中,最终渲染成你期望的HTML元素。

重要的安全提醒

虽然你提到本次场景必须采用这种实现方式,但还是要再次强调:v-html会直接渲染原始HTML,存在XSS攻击的风险。绝对不要用它渲染用户提供的内容,比如用户输入的评论、表单内容等,避免恶意脚本注入。

另外你提到的Vue 2过滤器确实在Vue 3中被移除了,Vue 3推荐使用方法或计算属性来处理数据,但在这个场景下,v-html是最直接的解决方案。

内容的提问来源于stack exchange,提问作者WoJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 08:37:31