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

如何让Vue 3渲染函数h()正确渲染输出HTML内容

问题原因

h函数默认会将字符串类型的子节点转义为纯文本渲染,不会解析字符串内的HTML标签,这是Vue内置的XSS防护机制,因此你传入的<strong>Bold</strong>会被直接作为文本输出,不会生成对应的DOM元素。

解决方案

方案1:嵌套调用h函数(官方首选方案)

不需要拼接HTML字符串,直接嵌套h函数描述DOM结构即可,性能最优且天然规避XSS风险:

import { h } from 'vue'

// 渲染结果等价于 <span><strong>Bold</strong></span>
h('span', {}, [
  h('strong', {}, 'Bold')
])

方案2:使用innerHTML属性渲染HTML字符串

如果你的内容是无法拆分的现成HTML字符串(例如后端返回的富文本内容),可以通过配置节点的innerHTML属性实现渲染,效果和模板中的v-html指令一致:

import { h } from 'vue'

h('span', {
  innerHTML: '<strong>Bold</strong>'
})

安全提示:innerHTML会无差别解析传入的所有HTML代码,如果内容包含用户可控的输入,必须先做XSS安全过滤,避免恶意脚本注入导致安全问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.19 16:15:46