作者:江湖z
链接:http://www.jianshu.com/p/98dfa4c6389c
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
一. v-bind介绍
数据绑定一个常见需求是操作元素的 class 列表和它的内联样式。因为它们都是属性 ,我们可以用 v-bind
处理它们:只需要计算出表达式最终的字符串。不过,字符串拼接麻烦又易错。因此,在 v-bind 用于 class 和 style 时, Vue.js 专门增强了它。表达式的结果类型除了字符串之外,还可以是对象或数组。
<div id="app">
<p v-bind:title="title">html属性不能使用双大括号形式绑定,只能使用v-bind指令</p>
</div>
......
var vm = new Vue({
el: '#app',
data: {
title: 'title content'
}
});
这里的 html 最后会渲染成:
<div id="app">
<p title="title content">html属性不能使用双大括号形式绑定,只能使用v-bind指令</p>
</div>
二.指令预期值
上面这种v-bind
是我们对于vue指令最初的理解,vue指令的预期值(如 v-bind:class="classProperty"
中,:
后面的 class
是参数,而 classProperty
则是在官方文档中被称为“预期值”),除了向上面那样绑定一个字符串类型的变量,它还支持一个 单一 Javascript 表达式 (v-for除外)。所以治理,我们多了更多的选择,如下:
(1) 执行运算
变量
和 字符串
拼接:
<div id="app">
<p v-bind:title="t1 + ' ' + t2">html属性不能使用双大括号形式绑定,只能使用v-bind指令</p>
</div>
......
var vm = new Vue({
el: '#app',
data: {
t1: 'title1',
t2: 'title2'
}
});
渲染结果是:
<div id="app">
<p title="title1 title2">html属性不能使用双大括号形式绑定,只能使用v-bind指令</p>
</div>
(2) 执行函数
<div id="app">
<p v-bind:title="getTitle()">html属性不能使用双大括号形式绑定,只能使用v-bind指令</p>
</div>
......
var vm = new Vue({
el: '#app',
data: {
getTitle: function () {
return 'title content';
}
}
});
最后渲染的结果是:
<div id="app">
<p title="title content">html属性不能使用双大括号形式绑定,只能使用v-bind指令</p>
</div>