vue学习笔记之指令v-text && v-html && v-bind详解
2019-01-03
编程之家
https://www.jb51.cc
一 : 指令的概念:
指令是vue自定义的以v-开头的自定义属性。每个不同的属性都有各自不同的意义和功能
二 : 指令的语法:
v-指令名 = “表达式判断或者是业务模型中属性名或者事件名”
三 : 具体指令
1. v-text
作用 : 操作元素中的纯文本
快捷方式 : {{}}
栗子1
简写形式:将v-text=""换成{{}}
var app = new Vue({
el : '#app',data : {
message : 'hello world'
}
})
结果:hello world
栗子2
var app1 = new Vue({
el : "#app1",data : {
year : new Date().getFullYear(),month : new Date().getMonth()+1
}
})
结果:今天是2017年5月
等同于:
这里v-text="",双引号并不是代表字符串,而是vue自定义的划定界限的符号。如果我们里边输出字符串,就要在里边再添加一对单引号。而且经测验,要想输出字符串,必须添加单引号,否则会报错
这里month默认是从0开始的,所以我们要+1
这里{{}}代表的就是"",所以在v-text=""中,我们在内容里边就不需要再写{{}}了,直接写data值就行
栗子3
{{ message }}
{{ message.concat('!!!') }}
{{ message? 'has message' : 'no message' }}
下面这两个语句报错
{{ var message = 'message' }}
{{ if(message){return info} }}
var app = new Vue({
el : '#app',// 绑定了上边的id='app'的元素
data : {
message : 'hello'
}
})
结果:
hello
hello!!!
has message
第四五句报错
大胡子{{}}里边支持表达式
但不是所有的表达式都能放在里边,只有单个语句的可以,像var和if就不可以
如果想使用if语句的话,用三元运算符代替
栗子4
可以采用对象的形式传递多个数据
姓名 : {{ person.name }}
性别 : {{ person.sex }}
年龄 : {{ person.age }}
var app2 = new Vue({
el : "#app2",data : {
person : {
name : '小明',sex : '男',age : 8
}
}
})
结果:
姓名 : 小明
性别 : 男
年龄 : 8
2. v-html
作用 : 操作元素中的HTML标签
v-text会将元素当成纯文本输出,v-html会将元素当成HTML标签解析后输出
栗子1
var app3 = new Vue({
el : "#app3",data : {
message : "![](img/1.jpg)"
}
})
由此可见:{{}}/v-text不能解析html元素,只会照样输出
栗子2
var app3 = new Vue({
el : "#app3",data : {
message : "![](img/1.jpg)"
}
})
结果 : 成功显示图片
3. v-bind
作用 : 绑定标签属性,:后面是标签属性名
栗子1
nofollow" hrefvalue">
source
var app = new Vue({
el : "#app",data : {
hrefvalue : 'http://www.baidu.com',source : 'img/1.jpg'
}
})