监听数组、对象

 侦听属性(Watch Property)

        使用watch来定义一个或多个数据的监听器,在数据发生变化时执行相应的操作。

watch: {
  // 监听单个属性
  propertyName(newVal, oldVal) {
    console.log(newVal)
    // 在属性发生变化时执行相应的操作,最初绑定时不回执行,oldVal为undefined
  },

  // 监听多个属性、对象、数组
  'propName1, propName2': {
    handler(newVals, oldVals) {
      // 在多个属性中的任何一个发生变化时执行相应的操作
    },
    immediate: true, // 可选,设置为 true 时,在初始渲染时立即触发回调函数,默认为 false。
    deep: true // 可选,深度监听对象或数组的变化,开销会比较大,默认false。
  }

  // 监听对象某项属性
  'objectName.propertyName': {
    handler(newVal, oldVal) {
      // 在对象的某一项发生变化时执行相应的操作
    },
    // deep: true //不需要了
  }
}

注:

        监听数组的变化时,Vue 默认无法直接监听数组的长度变化的,会侦听数组的变异方法(包括 push、pop、shift、unshift、splice、sort 和 reverse),以及使用索引进行直接更改的操作(例如 vm.items[0] = newValue)。如果在数组中使用其他非变异方法(例如 filter、slice 等)进行操作,watch 选项将无法侦听到变化。

       监听对象的变化时,Vue 默认会侦听对象的变异方法(如使用 arr.$set 或 Vue.set 方法添加或删除属性)。如果通过其他方式进行对象属性的变更,例如直接赋值或使用 Object.assign 方法,watch 选项将无法侦听到变化。

计算属性(Computed Property)

        计算属性具有缓存机制,只在依赖的响应式数据发生变化时才重新计算 。

computed: {
  propertyName() {
    // 计算属性的逻辑
  }
},

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值