in Vue.JS by

1 Answer

0 votes
by

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. 

Template

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

App

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

Output

Vue.js

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
asked Aug 26 in Ruby by Robin
  • ruby-on-rail
0 votes
asked Feb 4, 2020 in Vue.JS by rajeshsharma
0 votes
asked Mar 6 in Vue.JS by sharadyadav1986
0 votes
asked Mar 6 in Vue.JS by sharadyadav1986
...