首页 > 其他分享 >watch和computed的区别

watch和computed的区别

时间:2023-07-30 11:02:00浏览次数:37  
标签:定义 computed 区别 watch 计算 message 属性

官方文档vue-计算属性

computed——>计算属性

官方对于计算属性的解释是:

对于任何复杂逻辑,你都应当使用计算属性。计算属性是基于它们的响应式依赖进行缓存的。只在相关响应式依赖发生改变时它们才会重新求值。

个人理解:计算属性是为了模板中的表达式简洁,易维护,符合用于简单运算的设计初衷。

例子:

<div id="example">
  <p>Original message: "{{ message }}"</p>
  <p>Computed reversed message: "{{ reversedMessage }}"</p>
</div>

var vm = new Vue({
  el: '#example',
  data: {
    message: 'Hello'
  },
  computed: {
    // 计算属性的 getter
    reversedMessage: function () {
      // `this` 指向 vm 实例
      return this.message.split('').reverse().join('')
    }
  }
});

总结:

1.变量不在 data中定义,而是定义在computed中,有返回值。函数名直接在页面模板中渲染,不加小括号 。

2.根据传入的变量的变化 进行结果的更新。

3.计算属性基于响应式依赖进行缓存。如其中的任意一个值未发生变化,它调用的就是上一次 计算缓存的数据,因此提高了程序的性能。而methods中每调用一次就会重新计算 一次,为了进行不必要的资源消耗,选择用计算属性。

watch——>侦听器

只监听单个数据

Vue 通过 watch 选项提供了一个更通用的方法,来响应数据的变化。当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。

watch和computed对比

watch是在执行一些复杂的操作时候使用的。更直观的例子,我们可以看下官方对computed和watch的对比:

以下代码是针对fullname这个属性的监听:

watch和computed的区别_sed

使用watch

watch和computed的区别_缓存_02

使用computed

watch和computed的区别_sed_03

可以明显的看出,在执行简单的计算操作时,computed比watch更简洁易读。

总结:

1.计算属性变量在computed中定义,属性监听在data中定义。

2.计算属性是声明式的描述一个值依赖了其他值,依赖的值改变后重新计算结果更新DOM。属性监听的是定义的

变量,当定义的值发生变化时,执行相对应的函数。

3.如果一个数据依赖于其他数据的简易计算处理的,那么使用computed比较合适。
4.如果需要在某个数据变化时做一些事情,使用watch来观察这个数据变化

标签:定义,computed,区别,watch,计算,message,属性
From: https://blog.51cto.com/u_16202629/6899207

相关文章

  • VS选择Visual C++中的控制台项目和空项目、Windows桌面应用程序三者之间有什么区别?
    在VisualStudio中创建C/C++项目时,可以选择控制台项目、空项目和Windows桌面应用程序,它们有以下区别:控制台项目(ConsoleApplication):这种项目类型适用于命令行应用程序的开发。它提供一个命令行界面,可以在控制台中进行输入和输出操作,通常用于简单的控制台程序,如计算器、文件......
  • Modbus tcp转ETHERCAT网关modbus tcp主从站区别
    捷米JM-ECT-TCP网关能够连接到Modbustcp总线和ETHERCAT总线中,实现两种不同协议设备之间的通讯。这个网关能够大大提高工业生产的效率和生产效益,让生产变得更加智能化。捷米JM-ECT-TCP是自主研发的一款ETHERCAT 从站功能的通讯网关。该产品主要功能是将ETHERCAT 网络和MODBU......
  • ETHERNET/IP转RS485/RS232网关ethernet和tcp/ip的区别
    网络数据传输遇到的协议不同、数据互通麻烦等问题,一直困扰着大家。然而,现在有一种神器——捷米JM-EIP-RS485/232,它将ETHERNET/IP网络和RS485/RS232总线连接在一起,让数据传输更加便捷高效。那么,它是如何实现这一功能的呢?JM-EIP-RS485/232是一款自主研发的通讯网关,可以在ETHERNET/......
  • SAP CDS view 定义的数据库视图和传统 SQL 语句定义视图的区别
    SAPCDS(CoreDataServices)是SAPHANA数据模型开发的一种技术。它提供了一种领域特定的语言,用于定义数据模型,以及对数据进行查询、转换和展示。与传统的SQL(StructuredQueryLanguage)相比,SAPCDSview语法具有许多独特的特点和优势。在本文中,我将详细比较SAPCDSview语......
  • SAP CDS View 和 SAP HANA View 的区别
    SAPCDS(CoreDataServices)视图和SAPHANA视图都是用于数据提取和模型化的工具。它们的主要区别在于创建位置、语法、性能优化等方面。具体的区别和联系如下:创建位置:SAPCDS视图是在ABAP层创建的,它们是ABAP字典的一部分。另一方面,SAPHANA视图是在数据库层创建的,它们存在于HANA......
  • worry和worried的区别
    worry和worried的区别是worry既是名词,又是动词。  1、从时态方面讲,worried是worry的过去式,从主被动方面讲,worry是主动式,worried是被动式,动词的被动式是be+这个单词的过去形式,beworriedabout表示一个状态,而worryabout表示一个动作,就像determinetodosth和bedetermi......
  • Vue 2 和 Vue 3 中 toRefs的区别
    摘要:本文将介绍Vue2和Vue3中toRefs函数的不同用法和行为,并解释其在各个版本中的作用。正文:Vue是一款流行的JavaScript框架,用于构建用户界面。在Vue2和Vue3中,都存在一个名为toRefs的函数,但其行为在这两个版本中有所不同。Vue2中的toRefs在Vue2中,使用......
  • alpha测试和beta测试的区别是什么?
    alpha测试简称“α测试”,可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。【测试时间不同】α测试的目的是评价软件产品的FLURPS(即功能、局域化、可用性、可靠性、性能和支持)。尤其注重产品的界......
  • 描述符,元类,魔术方法之间的关系和区别
    描述符(Descriptor)、元类(Metaclass)和魔术方法(Magicmethods)是Python中三个不同的概念,它们在不同的层次上提供了不同的功能和行为。描述符(Descriptor):描述符是一种实现了特定协议的对象,它可以被用作类的属性,控制对属性的访问和修改。描述符通常定义了__get__、__set__和__delete__等......
  • C#计算代码运行时间(Stopwatch的使用)
    一、什么是StopwatchStopwatch:提供一组方法和属性,可以准确的测量运行时间。使用的时候需要引用命名空间:System.Diagnostics。 二、Stopwatch的简单使用//创建Stopwatch实例Stopwatchsw=newStopwatch();//开始计时sw.Start();for(inti=0;i<100;i++){Cons......