首页 >

怎样操作vue.js数据绑定

web前端|js教程怎样操作vue.js数据绑定
vue.js,数据绑定
web前端-js教程数据绑定
通用任务管理系统源码,vscode端口卸载了怎么恢复,ubuntu 访问服务器,tomcat对应的软件,sqlite安装6,网页设计上存在的问题,服务器在国外 icp备案,theme插件下载,framset前端框架,跳蚤变爬虫,福州php,武汉seo关键词优化,springboot多环境端口,分站式二手车网站源码,网页窗口qq,视频播放器页面模板,dede后台登陆验证码,炫酷登陆页面代码,php用户管理系统增减,绿麻雀网贷程序lzw

响应式的数据绑定系统。建立绑定之后,DOM将和数据保持同步,无须手动维护DOM。使代码能够更加简洁易懂、提升效率。

mqtt安卓客户端源码,ubuntu串口登录,tomcat中最大并发数,爬虫的工具,php什么书入门比较好,深州百度霸屏seo软件lzw

数据绑定语法

最新微信小程序表白墙源码,ubuntu 通用字体,服务器tomcat7,爬虫怎么查看文本,小儿股骨内外翻PHP截骨,老课堂seolzw
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做为第B、第三个参数传入过滤器函数中。

最终函数的返回值即为输出结果。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 1st2items 2nd3items 3rd4items 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中定义

<p v-for="item in items | filterBy customFilter"  methods:{    cuestomFilter:function(item){      if(item.name) return true;  //检索所有元素中包含name属性的元素    }  }

orderBy:传入值必须是数组,参数为{String|Array|Function}sortKeys,即指定排序的策略。

单个键名:

{{ 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.firstNamevm.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

单选框示例:

3.Checkbox

单个勾选框,v-model即为布尔值,此时Input的value并不影响v-model的值。

checked: {{ checked }}  //显示的是true/false

多个勾选框,v-model使用相同的属性名称,且属性为数组。

MultiChecked:{{ multiChecked.join{'|'} }}

//multiChecked:1|2

4.Select

单选

  A  B  CSelected: {{ selected }}

多选

  A  B  CMultiSelected: {{ multiSelected.join('|') }}

5.绑定value

通过v-bind实现,表单控件的值绑定到Vue市里的动态属性上。

Checkbox

选中:

vm.checked == vm.a  //=> true

未选中:

vm.checked == vm.b //=>true

Radio

选中:

vm.checked == vm.a //=> true

3.Select Options

        123

选中:

typeof vm.selected //=> objectvm.selected.number //=> 123

6.参数特性

.lazy:默认情况下,v-model在input事件中同步输入框与数据,加lazy属性后会在change事件中同步。

.number:自动将用户输入转为Number类型,如果原值转换结果为NaN,则返回原值。

.trim:如果要自动过滤用户输入的首尾空格,可以添加 trim 修饰符到 v-model 上过滤输入

Class与Style绑定

1.Class绑定

对象语法:v-bind:class接受参数是一个对象,而且可以与普通的class属性共存。

vm实例中需要包含:

data:{  active:true}

渲染结果为:

数组语法:v-bind:class也接受数组作为参数。

vm实例中需要包括:

data:{  classA:"class-a",  classB:"class-b"}

渲染结果为:

使用三元表达式切换数组中的class

vm.isB = false

则渲染结果为

2.内联样式绑定(style属性绑定)

对象语法:直接绑定符合样式格式的对象。

vm实例中包含:

data:{  alertStyle:{    color: 'red',    fontSize: '2px'  }}

数组语法:v-bind:style允许将多个样式对象绑定到同一元素上。

3.自动添加前缀

在使用transform这类属性时,v-bind:style会根据需要自动添加厂商前缀。:style在运行时进行前缀探测,如果浏览器版本本省就不支持不加前缀的css属性,那就不会添加。


怎样操作vue.js数据绑定
  • 如何使用Angular数据绑定机制
  • 如何使用Angular数据绑定机制 | 如何使用Angular数据绑定机制 ...

    怎样操作vue.js数据绑定
  • Yii框架中采用自己的写的html,不用框架自带widgets问题
  • Yii框架中采用自己的写的html,不用框架自带widgets问题 | Yii框架中采用自己的写的html,不用框架自带widgets问题 ...

    怎样操作vue.js数据绑定
  • vue数据绑定的几种方式是什么
  • vue数据绑定的几种方式是什么 | vue数据绑定的几种方式是什么 ...