vue--知识摘要

数组更新检测

变异方法 (mutation method),顾名思义,会改变被这些方法调用的原始数组。相比之下,也有非变异 (non-mutating method) 方法,这些不会改变原始数组,但总是返回一个新数组。
Vue 包含一组观察数组的变异方法,所以它们也将会触发视图更新。这些方法都是直接作用在原始数组上,可以改变原始数组,方法有:

  • push-向数组的开头添加一个或更多元素,返回新数组的长度,该方法可以传递多个值,即添加多个元素,例:arr.push(newItem1,newItem2,…,newItemN)
  • pop-删除数组最后一项,返回值为该项
  • shift-删除数组第一项,返回值为该项
  • unshift-向数组的开头添加一个或更多元素,返回值为新数组的长度,该方法可以传递多个值,例:arr.unshift(newItem1,newItem2,…,newItemN)
  • splice-对数组进行添加/删除项目,返回被删除的项目
  • sort-对数组的元素进行排序,在原数组上进行排序,不生成副本,返回该数组的引用
  • reverse-颠倒数组中元素的顺序

    当使用非变异方法时,可以用新数组替换旧数组,从而触发试图更新,方法有:

  • filter-创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,不会改变原始数组

  • concat-用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本
  • slice-从已有的数组中返回选定的元素,返回一个新的数组
example1.items = example1.items.filter(function (item) {
  return item.message.match(/Foo/)
})

对象更改检测注意事项

由于 JavaScript 的限制,Vue 不能检测对象属性的添加或删除
对于已经创建的实例,Vue 不能动态添加根级别的响应式属性。但是,可以使用 Vue.set(object, key, value) 方法向嵌套对象添加响应式属性。
有时你可能需要为已有对象赋予多个新属性,比如使用 Object.assign() 或 _.extend()。在这种情况下,你应该用两个对象的属性创建一个新的对象。

vm.userProfile = Object.assign({}, vm.userProfile, {
  age: 27,
  favoriteColor: 'Vue Green'
})

摘自vue官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值