watch和computer的区别-前端-E先生的博客
Java
MySQL
大数据
Python
前端
黑科技
    首页 >> 互联网 >> 前端

watch和computer的区别

[导读]:wactch: 1.不支持缓存。数据变化直接触发操作; 2.watch支持异步; 3.监听的函数接收两个参数(newValue,oldValue) 当一个属性发生变化时,需要执行对应的操作;一对多; 监听数据必须是data中声明过或者父组件传递过来的props中的数...
  wactch:
  1.不支持缓存。数据变化直接触发操作;
  2.watch支持异步;
  3.监听的函数接收两个参数(newValue,oldValue)
  当一个属性发生变化时,需要执行对应的操作;一对多;
  监听数据必须是data中声明过或者父组件传递过来的props中的数据。
  页面第一次渲染时候,watch函数是不会执行的,只有当数据变化时才会触发操作。函数有两个参数,
  deep控制是否要看这个对象里面的属性变化,但是其无法监听到数组的变动和对象的新增
  immediate控制是否在第一次渲染是执行这个函数
  举例场景:现在有父组件P,和他的2个子组件C1,C2。C1改变父组件P的data,并且需要把这个值传给C2,这时候发现C2组件的data值没有变换还是最初父组件P传的值,考虑在组件C2中用watch来解决
  computer:
  1.支持缓存,只有依赖数据发生改变,才会重新进行计算
  2.不支持异步,当computed内有异步操作时无效,无法监听数据的变化
  3.computed属性值会默认走缓存,计算属性是基于它们的响应式依赖进行缓存的,也就是基于data中声明过或者父组件传递的props中的数据通过计算得到的值
  4.如果一个属性是由其他属性计算而来的,这个属性依赖其他属性,是一个多对一或者一对一,一般用computed
  5.如果computed属性属性值是函数,那么默认会走get方法;函数的返回值就是属性的属性值;在computed中的,属性都有一个get和一个set方法,当数据变化时,调用set方法。

本文来自E先生的博客,如若转载,请注明出处:https://www.javajz.cn

留言区

联系人:
手   机:
内   容:
验证码:

历史留言

欢迎加Easy的QQ