前言
在上面几章中,我们写入数据采用的都是{{ data }}的方式,
但是有时我们会看到一个现象,那就是当我们刷新页面时,页面会先出现{{ data }}这几个文字,
然后才出现或者不出现我们想要的内容。造出这种现象的原因是网速较慢或者加载vue.js文件报错,
导致数据无法成功渲染。这时我们可以使用 v-text 和 v-html 解决这个问题。
v-text 的使用
模版写法:
1
| <div v-text="title"></div>
|
完整代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>v-text</title> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.11"></script> </head> <body> <div id="app"> <div v-text="title"></div> </div> <script type="text/javascript"> var vm = new Vue({ el: '#app', data() { return { title: 'v-text' } } }) </script> </body> </html>
|
在浏览器运行此文件,可以看到成功显示出v-text
v-html 的使用
v-text 会将数据解释为纯文本,而非HTML。有时我们需要输出真正的HTML,这时就可以使用v-html。
模版写法:
1
| <div v-html="title"></div>
|
完整代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>v-html</title> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.11"></script> </head> <body> <div id="app"> <div v-html="title"></div> </div> <script type="text/javascript"> var vm = new Vue({ el: '#app', data() { return { title: '<h1>v-html</h1>' } } }) </script> </body> </html>
|
在浏览器运行此文件,可以看到成功显示出v-html
注意:生产环境中动态渲染HTML是非常危险的,容易导致XSS攻击。所以在使用v-html时,不要在用户提交或可操作的网页上使用。