Jan 9, 2020 in Vue.JS

How would you render raw HTML in a template?

1 Answer

0 votes
Jan 9, 2020

The typical way to output content in a template is using the mustache syntax tags to output data from a method, prop or data variable. The mustache tags however render text. If you try to render HTML using mustache tags, it will render as a text string and won’t be parsed. To render & parse content as html, we can use the v-html directive as demonstrated below. 


<div id="app" v-html=”title”></div>


new Vue({
    el: '#app',
    data: {
      title: '<h1 style="color: green;">Vue.js</h1>'



As shown in the example above, the v-html directive parses any HTML and as a result, the statement above is rendered as desired. v-html should not be used unless the developer understands risks associated with it. When incorrectly or carelessly used, v-html can expose the site/app to injection attacks where malicious code may be injected and executed from external sources. When interviewing the candidate, please ensure the candidate is aware of this issue with v-html.

Related questions

0 votes
Feb 4, 2020 in Vue.JS
  • #vuejs-template
0 votes
Jan 9, 2020 in Vue.JS
+1 vote
Feb 18 in Linux