文本渲染指令 {{}} 和 v-text 和 v-html
Vue使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据。所有Vue的模板都是合法的HTML,所以能被遵循规范的浏览器和HTML解析器解析。
在前面,我们一直使用的是字符串差值的形式渲染文本,但是除此方法之外,vue还提供了其他几种常见的文本渲染方式:
v-text:更新元素的innerText
v-html:更新元素的innerHTML
v-text 和 v-html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>v-text和v-html的区别</title>
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>
<body>
<div id="app">
<p>{{content}}</p>
<p v-text="content"></p>
<!-- v-html指令的作用是:设置元素的innerHtml -->
<!-- 内容中的html结构会被解析为标签 -->
<p v-html="content"></p>
</div>
<script>
var app = new Vue({
el:"#app",
data:{
content:"<a href='https://www.baidu.com/'>百度一下</a>"
}
})
</script>
</body>
</html>
v-text 和
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>v-text和{{}}</title>
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>
<body>
<div id="app">
<!-- vue的挂载点不能放在body标签和html标签上面 -->
<!-- 建议使用id选择器 -->
<p>{{message}}</p>
<!-- 下面三个效果一样 -->
<p v-text="message + '!!!'"></p>
<p>{{message}}!!!</p>
<p>{{message+"!!!"}}</p>
<p>{{author.name}} {{author.sex}} {{author.tel}}</p>
<ul>
<li>{{hobby[0]}}</li>
<li>{{hobby[1]}}</li>
<li>{{hobby[2]}}</li>
<li>{{hobby[3]}}</li>
</ul>
</div>
<script>
var app = new Vue({
el:"#app",
data:{
message:"马赫真帅",
author:{
name:"马赫",
tel:"13234666930",
sex:"男"
},
hobby:[
"java",
"python",
"js",
"game"
]
}
})
</script>
</body>
</html>