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

作者:江湖z
链接:http://www.jianshu.com/p/98dfa4c6389c
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

一. v-bind介绍

数据绑定一个常见需求是操作元素的 class 列表和它的内联样式。因为它们都是属性 ,我们可以用 v-bind 处理它们:只需要计算出表达式最终的字符串。不过,字符串拼接麻烦又易错。因此,在 v-bind 用于 class 和 style 时, Vue.js 专门增强了它。表达式的结果类型除了字符串之外,还可以是对象或数组。

"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>

你可能感兴趣的:(技术类)