您的位置:首页 > 产品设计 > UI/UE

Vue.js v-bind遇到的数据渲染问题

2017-08-03 13:44 615 查看
作者:江湖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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vue-js