0%

【004】Vue基础学习:v-text和v-html的使用

前言

在上面几章中,我们写入数据采用的都是{{ 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时,不要在用户提交或可操作的网页上使用。