The v-html directive is a Vue.js directive used to update a element’s inner HTML with our data. This is what separates it from v-text which means while v-text accepts string and treats it as a string it will accept string and render it into HTML. First, we will create a div element with id as app and let’s apply the v-html directive to this element with data as a message. Now we will create this message by initializing a Vue instance with the data attribute containing our message.
Scoped styles won’t apply to v-html, because Vue doesn’t compile that HTML. In order to apply styles to it try using global styles or some other CSS Modules.
Syntax:
v-html="data"
Parameters: This directive accepts a single parameter which is the data in the form of a string.
Example: This example uses VueJS to update the html of a element with v-html.
HTML
<!DOCTYPE html> < html > < head > < title > VueJS | v-html directive </ title > <!-- Load Vuejs --> < script src = </ script > </ script > </ head > < body > < div style = "text-align: center;width: 600px;" > < h1 style = "color: green;" > neveropen </ h1 > < b > VueJS | v-html directive </ b > </ div > < div id = "canvas" style="border:1px solid #000000; width: 600px;height: 200px;"> < div v-html = "message" id = "app" > </ div > </ div > < script > var app = new Vue({ el: '#app', data: { message: '< h1 >HELLO '+ '< span style = "color:blue;" >'+ 'WORLD</ span >'+ '</ h1 >' } }) </ script > </ body > </ html > |
Output: