(1) v-text
作用:操作元素中的纯文本。快捷方式 : {{}}
例1:简写形式->将v-text=""换成{{}}
<div id="app">
{{ message }}
</div>
<script>
var app = new Vue({
el : '#app',
data : {
message : 'hello world'
}
})
</script>
//输出:hello world
例2:不使用快捷方式,用v-text=""
<h1 id="app1" v-text="'今天是'+year+'年'+month+'月'"></h1>
<!--等同于:<h1 id="app1">今天是{{year}}年{{month}}月</h1>-->
<script>
var app1 = new Vue({
el : "#app1",
data : {
year : new Date().getFullYear(),
month : new Date().getMonth()+1 ,
}
})
</script>
//输出:今天是2020年10月
-
-
这里month默认是从0开始的,所以我们要+1
-
例3:
<div id='app2'>
<h1>{{ message }}</h1>
<h1>{{ message.concat('!!!') }}</h1>
<h1>{{ message? 'has message' : 'no message' }}</h1>
<!-- 下面这两个语句报错 -->
<!-- <h1>{{ var message = 'message' }}</h1> -->
<!-- <h1>{{ if(message){return info} }}</h1> -->
</div>
<script>
var app = new Vue({
el: '#app2', // 绑定了上边的id='app2'的元素
data: {
message: 'hello'
}
})
</script>
输出:
hello
hello!!!
has message
-
但不是所有的表达式都能放在里边,只有单个语句的可以,像var和if就不可以
-
如果想使用if语句的话,用三元运算符代替
例4:可以采用对象的形式传递多个数据
<div id="app3">
<p>姓名 : {{ person.name }}</p>
<p>性别 : {{ person.sex }}</p>
<p>年龄 : {{ person.age }}</p>
</div>
<script>
var app3 = new Vue({
el: "#app3",
data: {
person: {
name: '小明',
sex: '男',
age: 8
}
}
})
</script>
输出:
姓名 : 小明
性别 : 男
年龄 : 8
用{{}}的弊端:
网速很慢或者下面的JavaScript写错时,会直接将{{message}}渲染到页面。而使用v-text="message" 如果出错是不显示的。所以在实际开发中用v-text比较多。
(2) v-html
作用 : 操作元素中的HTML标签。
例1:v-text
<div id="app3">
{{ message }}
</div>
<script>
var app3 = new Vue({
el : "#app3",
data : {
message : "<h1>这是一个h1元素内容</h1>"
}
})
</script>
输出:
<h1>这是一个h1元素内容</h1>
例2:v-html
<div id="app4" v-html="message"></div>
<script>
var app4 = new Vue({
el : "#app4",
data : {
message : "<h1>这是一个h1元素内容</h1>"
}
})
</script>
例3:(v-html) 尝试定义样式属性
<div id="app" v-html="msg"></div>
<script>
var vm = new Vue({
el : "#app",
data : {
msg : "<h1 style='color:red'>这是一个h1元素内容</h1>"
}
});
</script>
输出: