vue.js数据绑定操作详解 本文实例讲述了vue.js数据绑定操作。分享给大家供大家参考,具体如下: 数据绑定 响应式的数据绑定系统。建立绑定之后,DOM将和数据保持同步,无须手动维护DOM。使代码能够更加简洁易懂、提升效率。 数据绑定语法 1.文本插值 {{ }}Mustache标签 Hello {{ name }} data:{ name: 'vue' } == > Hello vue 单次插值 首次赋值后再更改vm实例属性值不会引起DOM的变化 {{ name }} 2.HTML属性 Mustache标签{{ }}
简写:
3.绑定表达式 放在Mustache标签内的文本内容。除了直接输出属性值之外,一段绑定表达式可以由一个简单的JavaScript表达式和可选的一个或多个过滤器构成(不支持正则表达式,若需要复杂的转换,则使用过滤器或者计算属性来进行处理)。 {{ index + 1}} {{ index == 0 ? 'a' : 'b' }} {{name.split('').join('|') }} {{ var a = 1 }} //无效 4.过滤器 vue.js允许在表达式后添加可选的过滤器,以管道符"|"指示。 {{ name | uppercase }} // Vue.js将name的值传入给uppercase这个内置的过滤器中(本质是一个函数),返回字符串的大写值。 {{ name | filterA | filterB }} //多个过滤器链式使用 {{ name | filterA arg1 arg2 }} //传入多个参数 此时,filterA将name的值做为第一个参数,arg1,arg2做为第二、第三个参数传入过滤器函数中。 最终函数的返回值即为输出结果。arg1,arg2可以使用表达式,也可以加上单引号,直接传入字符串。 例如: {{ name.split('') | limitBy 3 1 }} // ->u,e 过滤器limitBy可以接受两个参数,第一个参数是设置显示个数,第二个参数为可选,指从开始元素的数组下标。 vue.js内置的10个过滤器(Vue.js2.0中去除) capitalize:字符串首字符转化为大写。 uppercase:字符串转化为大写。 lowercase:字符串转化为小写。 currency:参数为{String}[货币符号],{Number}[小数位],将数字转化成货币符号,并且会自动添加数字分节号。 {{ amount | currency '¥' 2 }} //若amount值为1000,则输出为¥1,000.00 pluralize:参数为{String}single,[double,triple],字符串复数化。

{{ c | pluralize 'item' }} {{ c | pliralize 'st' 'nd' 'rd' 'th' }}

//输出结果: 1item 1st 2items 2nd 3items 3rd 4items 4th json:参数为{Number}[indent]空格缩进数,将json对象数据输出成符合json格式的字符串。 debounce:传入值必须是函数,参数可选,为{Number}[wait],即延时时长。作用是当调用函数n毫秒后,才会执行该动作。 //input元素上监听了keyup事件,并且延迟500ms触发 limitBy:传入值必须是数组,参数为{Number}limit,{Number}[offset],limit为显示个数,offset为开始显示数组下标。
//items为数组,且只显示数组中的前十个元素 filterBy:传入值必须是数组,参数为{String | Function}targetStringOrFunction,即需要匹配的字符串或函数;"in"可选分隔符。{String}[...searchKeys],为检索的属性区域。

{{ name }}

//检索names数组中值包含1.0的元素

{{ item | json }}

//检索items中元素属性name值为1.0的元素输出。检索区域也可以为数组,即in [name,version],在多个属性中进行检索。 //输出结果 vue1.0 {"name":"vue1.0","version":"1.0"} 使用自定义的过滤函数,函数可以在选项methods中定义

{{ item.name}}

//items数组中以键名name进行降序排列 多个键名:

{{item.name}}

//使用items里的两个键名进行排序 自定义排序函数:

{{item.name}}

methods:{ customOrder: function(a,b){ return parseFloat(a.version) > parseFloat(b.version) //对比item中version的值的大小进行排序 } } 5.指令 指令的值限定为绑定表达式,即当表达式的值发生改变时,会有些特殊行为作用到绑定的DOM上。 参数:src为参数 <==> 修饰符:以半角句号.开始的特殊后缀,用于表示指令应该以特殊方式绑定。 //stop:停止冒泡。相当于调用了e.stopPropagagation(). 计算属性 避免在模板中加入过重的业务逻辑,保证模版的结构清晰和可维护性。 1.基础例子 var vm = new Vue({ el: '#app', data: { firstName:'Gavin', lastName:'CLY' }, computed: { fullName:function(){ //this指向vm实例 return this.firstName + ' ' + this.lastName; } } })

{{ firstName }}

//Gavin

{{ lastName }}

//CLY

{{ fullName }}

//Gavin CLY 注:此时对vm.firstName和vm.lastName进行修改,始终会影响vm.fullName。 2.Setter 更新属性时带来便利 var vm = new Vue({ el:'#el', data:{ cents:100 }, computed:{ price:{ set:function(newValue) { this.cents = newValue * 100; }, get:function(){ return (this.cents / 100).toFixed(2); } } } }) 表单控件 v-model:对表单元素进行双向数据绑定,在修改表单元素值时,实例vm中对应的属性值也同时更新,反之亦然。 var vm = new Vue({ el:'#app', data: { message: '', gender: '', cheched: '', multiChecked: '', a: 'checked', b: 'checked' } }) 1. Text 输入框示例,用户输入的内容和vm.message直接绑定: Your input is : {{ message }} 2. Radio 单选框示例: