v-html Render Raw HTML

Last updated: 2026-10-22

v-html Render Raw HTML

v-html parses a string as HTML and injects it into the element — used for rich text content.

GroupDirectives
KindDirective
ScopeTemplate
Vue Version3.0+
SSR SupportYes

📝 Syntax

<div v-html="htmlContent"></div>

⚙️ Arguments

expressionAn HTML string (not escaped)

Returns:Directive, no return value

▶ Example

Edit the code below and see the live result:

Output:

The page shows bold and italic text — the HTML string is parsed and rendered.

💡 Key Points

⚠️ Warning Only use v-html with trusted content: it does not escape, so user input would enable XSS.
⚠️ Warning Directives such as v-bind inside v-html are never compiled and will not work.
💡 Tip For plain text prefer v-text or {{ }}; use v-html only when you truly need HTML markup.
More case studies coming soon.

📚 Related Tutorials

❓ FAQ

Q Is v-html a security risk?
A Yes. It does not escape, so user-controlled data enables XSS. Only use it with trusted or sanitized HTML.
Q Why do directives inside v-html not work?
A Injected HTML bypasses the template compiler, so directives like v-bind are ignored. Use render functions or components instead.
Q How do I render rich text safely?
A Sanitize the HTML (e.g. with DOMPurify) before handing it to v-html; prefer v-text when formatting is not needed.
Web-Tutorial.com

Web-Tutorial Tech Team

A team of developers maintaining programming tutorials. Each tutorial is written and reviewed by developers with expertise in that field. We work to keep our content accurate and reliable — if you spot an issue, please let us know.

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏