vue学习

今天学习了:

Vue和React框架用遍历指令时的key值不建议用index
(1)key值在没有删除插入操作时只要是唯一值也无所谓,即此时为index索引也可以
(2)如果有删除插入的操作,后一位会继承删掉的index,这时的key写不如不写,本来key是为了让遍历性能优化的操作,这种可能重复或者改变的key值不仅不会优化还会影响性能
(3)index作为:key值,有可能导致第一次执行循环体初始化失败,正确的做法是尽量使用理想的 key 值-每项都有的唯一 id。

JS数组操作
①末尾添加-push,会改变原始数组,返回值为数组更新后的新数组长度。
②末尾删除-pop,会改变原始数组,返回值为被删除的数组元素。
③开头添加-unshift,会改变原始数组,返回更新后新数组长度
④开头删除-shift,会改变原始数组,返回被删除的数组元素
⑤添加、删除、替换-splice,会改变原始数组
1、删除:删除(任意个数)—参数1:开始的索引;参数2:删除的长度。
返回被删除的数组元素
⑤添加、删除、替换-splice,会改变原始数组
2、添加(任意个数): 插入起始位置、0(要删除的项数)和要插入的项。
返回空;如果要插入多个项,可以再传入第四、第五…任意多个项。
⑤添加、删除、替换-splice,会改变原始数组
替换:替换(任意个数):即删除和插入数量相等项数的综合应用,可以指向指定位置插入任意数量的项,且同时删除任意数量的项
3、指定3个指定参数:起始位置、要删除的项数和要插入的任意数量项。
返回被替换掉的数组元素;注意:插入的项数是不必与删除的项数相等 。
⑥排序-sort,会改变原始数组,返回排序后的数组
⑦翻转-reverse,会改变原始数组,返回翻转后的数组
⑧筛选-filter,不会改变原始数组,返回筛选后的新数组
⑨拼接-concat,不会改变原始数组,返回拼接后的新数组
⑩截取-slice:包含开头索引不含结尾索引,返回截取的数组元素

JS限制-数组操作
由于 JavaScript 的限制,Vue 不能检测以下变动的数组:
①利用索引直接设置一个项时,例如:vm.items[indexOfItem] = newValue
②修改数组的长度时,例如:vm.items.length = newLength
利用索引直接设置,无法响应
方法1:set方法
语法结构:Vue.set(vm.items, indexOfItem, newValue)
方法2:splice替换
语法结构:vm.items.splice(indexOfItem, number, newValue)

限制2:修改数组的长度时
对象属性改动时,vue可以实时监听检测,实现响应式。但是注意:由于 JS的限制,Vue 不能检测对象属性的添加或删除。
使用 Vue.set(object, key, value) 方法向嵌套对象添加响应式属性
此外还可以使用 vm.$set 实例方法,它只是全局 Vue.set 的别名

字符串和数字大小对比
(1)纯字符串比较,转换成ASCII码再进行比较;
(2)纯数字和数字字符串相比较,则将字符串数字隐式转换成数字再进行比较;
(3)纯数字和非数字字符串比较,都返回false;

ASCII码值
(1)charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。
语法:stringObject.charCodeAt(index)
字符串中第一个字符的下标是 0。如果 index 是负数,或大于等于字符串的长度,则 charCodeAt() 返回 NaN。
(2)charAt() 方法可返回指定位置的字符。
①场景:获取字符串“你看啥看”的你,需要转数组再获取
②现在可以直接用charAt() 方法可返回指定位置的字符

1、charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。
2、charAt() 方法可返回指定位置的字符。
3、方法 charCodeAt() 与 charAt() 方法执行的操作相似,只不过前者返回的是位于指定位置的字符的编码,而后者返回的是字符子串。

v-model基本用法
表单控件在实际业务较为常见,比如单选、多选、下拉选择、输入框等,用它们可以完成数据的录入、校验、提交等。 Vue 提供了 v-model 指令,用于在表单类元素上双向绑定数据。
例如在输入框上使用时,输入的内容会实时映射到绑定的数据上。
对于文本域 textarea 也是同样的用法
注意:
①使用 v-model 后,表单控件显示的值只依赖所绑定的数据,不再关心初始化时的 value属性(解耦初始化value属性)
②对于< textarea> 之间插入的值,不会生效(覆盖文本域)
③使用 v-model 时,如果是用中文输入法输入中文,一般在没有选定饲组前,也就是在拼音阶段, Vue 是不会更新数据的,当敲下汉字时才会触发更新。如果希望总是实时更新,可以用@input 来替代 v-model ,只不过v-model会在不同的表单上进行智能处理。

单选框/按钮
(1)单独使用
单选按钮在单独使用时,官方文档标明不需要 v-model ,可以直接使用 v-bind 绑定布尔类型为真选中,为否时不选。
但不推荐使用v-bind进行绑定,建议用 v-model 配合 value 使用。
(2)组合使用
如果是组合使用来实现互斥选择效果。
数据 profession值与单选按钮的 value 值一致时,就会选中该项

复选框/多选按钮
复选框也分单独使用和组合使用,不过用法稍与单选不同。
(1)单独使用
复选框单独使用时,是用 v-model来绑定一个布尔值。(注意:虽然v-bind绑定后的效果也一样,但只是效果一样,数据并未发生改动)
(1)单独使用
因为v-bind绑定单个多选按钮无法实现数据驱动,所以单独使用复选框时,语法指令为v-model
(1)单独使用
对上面案例进行修改调整
此时在勾选时,数据status值变为了true, label 渲染的内容也会更新。
(2)组合使用
组合使用时,也是v-model与value 一起,多个勾选框都绑定到同一个数组类型的数据,value的值在数组当中,就会选中这一项。这一过程是双向的,在勾选时value 的值也会自动 push这个数组中

Vue实现全选与全不选1
利用vue的双向数据绑定v-model命令,当勾选时,checkbox的value值会自动push到所绑定的数组checkData中去,即结合value和v-model。

Vue实现全选与全不选2
可以通过vue对input的特殊方式v-model来实现对应数据的绑定,同样也可以通过这种方式实现购物车全选与全不选的效果

下拉选择列表
选择列表就是下拉选择器,也是常见的表单控件,同样也分为单选和多选两种方式。
多选:
给添加属性 multiple 就可以多选了, 此时v-model 绑定的是一个数组。与复选框用法类似,多选:按住Ctrl+点击即可。

动态下拉选择列表
在业务中,经常用 v-for 动态输出,value和text 也是用 v-bind 来动态输出的。

表单输入绑定修饰符
.lazy延迟修饰符
在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步 (除了上述输入法组合文字时)。可以添加 lazy 修饰符,从而转变为使用 change 事件进行同步:
(2).number数字修饰符
这通常很有用,因为即使在 type=“number” 时,HTML 输入元素的值也总会返回字符串。如果想自动将用户的输入值转为数值类型,可以给 v-model 添加 number 修饰符
(3)过滤空白修饰符
给 v-model 添加 trim 修饰符,可以自动过滤用户输入的首尾空白字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值