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

作者:江湖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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值