Vue入门
vue内部指令--------v-text &&v-html
v-text指令与v-html指令:
-
对于v-text指令
在网页中输出data中的值时可以采用 {{messages}} 的方式输出但是这样子会有弊端;
当网速缓慢或是javascript出错时,会将 {{messages}} 中的内容暴漏出来。
这是可以采用 v-text指令将结果输出。
例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>整合</title>
<script src="../assets/js/vue.js"></script>
</head>
<body>
<div id="demo">
<h1 v-text="messages"></h1>
</div>
<script type="text/javascript">
var test=new Vue({
el:'#demo',
data:{
messages:'这是v-text的一个小测试'
}
})
</script>
</body>
</html>
或是用{{xxx}}将内容输出,但一般不建议这么做
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>整合</title>
<script src="../assets/js/vue.js"></script>
</head>
<body>
<div id="demo">
<h1>{{messages}}</h1>
</div>
<script type="text/javascript">
var test=new Vue({
el:'#demo',
data:{
messages:'这是v-text的一个小测试'
}
})
</script>
</body>
</html>
以上两者运行的结果都是一样的:
如果在javascript中写有html标签,用v-text是输出不出来的,这时候我们就需要用v-html标签了。
例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>整合</title>
<script src="../assets/js/vue.js"></script>
</head>
<body>
<div id="demo">
<p v-html="messages"></p>
</div>
<script type="text/javascript">
var test=new Vue({
el:'#demo',
data:{
messages:'<h1>我们是好样的,学习使用v-html标签</h1>'
}
})
</script>
</body>
</html>
运行结果:
注意!注意!注意!
1.双大括号会将数据解释为纯文本,而非HTML;
2.在生产环境中动态渲染HTML是非常危险的,因为容易导致XSS攻击
所以永远不要在用户提交和可操作的网页上使用v-html内部指令。