🖥️ 前端经典面试题专栏:前端经典面试题 | Computed 和 Watch 的区别
🧑‍💼 个人简介:一个不甘平庸的平凡人🍬

✨ 个人主页:CoderHing的个人主页

🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️

👉 你的一键三连是我更新的最大动力❤️


目录

一、回答点

二、深入回答

Computed:

Watch:

应用场景:


一、回答点

computed计算属性: 依赖其他的值,有缓存, 当它依赖的属性值发生改变,在下次获取computed的值时,才会重新计算computed值,而watch监听器,更多的是起到监听的作用,它没有缓存,每当监听的数据发生了都会执行回调进行后续的操作.

二、深入回答

Computed:

  • 支持缓存,当依赖的数据发生变化后,才会重新计算
  • 不支持一步操作,当它里面有 异步操作时,无法监听数据的变化
  • 计算属性的值 默认会缓存,它是基于响应式依赖进行缓存的,就是 基于data声明过 或者 从父组件传递过来的props中的数据进行金酸
  • 如果一个属性是由其他属性计算而来,那么一般会使用计算属性
  • 如果 计算属性的属性值是函数,那么默认会使用get 方法,函数的返回值就是属性的属性值,在计算属性中,有get和set方法,当数据发生变化时,会调用set方法

Watch:

  • 不支持缓存,当数据发生变化时,他就会触发,之后进行对应的操作
  • 它支持异步监听
  • 监听的函数会接收两个参数,第一个参数是新值,第二个参数是 旧值
  • 当一个属性发生变化时,就会执行对应的操作
  • 监听数据必须在data中声明 或这 从父组件传递过来的props中的数据 当发生变化时,会触发对应的操作,函数有两个参数:
    • immediate:组件加载会直接触发回调函数
    • deep:深度监听,发现数据内部的变化,在复杂数据类型中使用.这里要注意的是 deep无法监听到数组和对象内部的变化.

应用场景:

  • 当需要进行计算并依赖其他数据的时候,就使用 计算属性, 因为可以利用 计算属性的缓存特性,避免每次获取值时候都要重新计算.而当它需要执行异步操作时 使用watch.
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐