computed 和 watch 区别 , 数据 深拷贝 ,浅拷贝两个重点知识总结

computed 和 watch 区别

computed

  1. 支持缓存,只有依赖的数据发生变化的时候,才会重新计算
  2. 不支持异步,无法监听数据的变化,computed的值默认走缓存,基于响应式依赖进行缓存,也就是从 data拿到的数据或者父组件的props中传递过来的
  3. 如果一个属性是由其他属性计算而来的,一般会使用computed,如果computed是一个函数,则默认使用get方法

watch

  1. 不支持缓存,更多的是观察的作用 ,类似于某些数据的监听回调
  2. 函数有两个参数,immediate:发生变化立即触发,deep:深度监听,发现数据内部的变化,在复杂数据类型中使用,例如数组中的对象发生变化

总结:

  • 当需要进行数值计算,并且依赖于其他数据的时候,应该使用 computed 属性,因为可以利用computed的缓存特性,避免每次获取值都需要重新计算(购物车计算总额的时候)
  • 当需要在数据变化时执行异步或者开销较大的操作的时候,使用watch (搜索数据)

数据 深拷贝 ,浅拷贝

堆和栈:

1.栈内存存储的是局部变量而堆内存存储的是实体 ;
2.栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短;
3.栈内存存放的变量生命周期一旦结束就会被释放,而堆内存存放的实体会被垃圾回收机制不定时的回收。

在这里插入图片描述

深拷贝的作用就是:改变现数据不影响原数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值