v html 多了双引号,vue v-text && v-html && v-bind

一 : 指令的概念:

指令是vue自定义的以v-开头的自定义属性。每个不同的属性都有各自不同的意义和功能

二 : 指令的语法:

v-指令名 = “表达式判断或者是业务模型中属性名或者事件名”

三 : 具体指令

1. v-text

作用 : 操作元素中的纯文本

快捷方式 : {{}}

栗子1

简写形式:将v-text=""换成{{}}

{{ message }}

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月

等同于:

今天是{{year}}年{{month}}月

这里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

4131e8b033de

补充一点:

用{{}}的弊端:当网速很慢或者下面的JavaScript写错时,会直接将{{message}}渲染到页面

而使用v-text="message" 如果出错是不显示的

所以在实际开发中用v-text比较多

2. v-html

作用 : 操作元素中的HTML标签

v-text会将元素当成纯文本输出,v-html会将元素当成HTML标签解析后输出

栗子1

{{ message }}

var app3 = new Vue({

el : "#app3",

data : {

message : "[图片上传失败...(image-b28bd8-1533127932697)]"

}

})

结果:输出代表图片名称的字符串,而不是将图片输出

由此可见:{{}}/v-text不能解析html元素,只会照样输出

栗子2

var app3 = new Vue({

el : "#app3",

data : {

message : "[图片上传失败...(image-6734f-1533127932697)]"

}

})

结果 : 成功显示图片

4131e8b033de

3.gif

注意 : 你的站点上动态渲染的任意 HTML 可能会非常危险,因为它很容易导致 XSS 攻击。请只对可信内容使用 HTML 插值,绝不要对用户提供的内容插值。

3. v-bind

作用 : 绑定标签属性,:后面是标签属性名

栗子1

[图片上传失败...(image-27c495-1533127932697)]

var app = new Vue({

el : "#app",

data : {

hrefvalue : 'http://www.baidu.com',

source : 'img/1.jpg'

}

})

4131e8b033de

5.gif

栗子2

鼠标悬停几秒钟查看此处动态绑定的提示信息!

var app2 = new Vue({

el : '#app2',

data : {

message : '页面加载于' + new Date()

}

})

补充v-bind小例子

根据条件判断绑定
绑定多个class值,数组
绑定三元运算符

isOk = {{isOk}}

绑定style
对象方式绑定style

var app = new Vue({

el : "#app",

data : {

imgSrc : "./img/dele.jpg",

webUrl : "www.baidu.com",

className : "a",

isOk : true,

classA : 'a',

classB : 'b',

red : 'red',

font : '30px',

styleObject : { // 将style写成对象写法

color : 'orange',

fontSize : '40px'

}

}

})

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值