Vue.js计算属性和侦听属性

Vue.js 计算属性的基本使用,复杂使用 ,set 和 get,计算属性与methods的对比 和 计算属性与侦听器 Vue.js 计算属性的基本使用,复杂使用 ,set 和 get,计算属性与methods的对比 和 计算属性与侦听器 阅读详情


更多关于Vue.js的系列文章请点击:Vue.js开发实践(0)-目录页


一、计算属性

1.1、计算属性的使用

模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。例如:

<div id="example">
  {{ message.split('').reverse().join('') }}
</div>

为了处理复杂的逻辑处理和计算操作,Vue.js为实例提供了一个计算属性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.2、计算属性结果是被缓存的

我们不一定需要在vue实例中使用计算属性,我们也可以使用methods属性来响应一个反转字符串:

<p>Reversed message: "{{ reversedMessage() }}"</p>
methods: {
  reversedMessage: function () {
    return this.message.split('').reverse().join('')
  }
}

它们都能实现一样的结果,但是它们也有不同点:
计算属性获得的结果是被缓存的,当结果依赖的数据改变时,结果缓存才会被更新,而通过表达式调用的结果会在每次请求时都刷新。

为什么需要缓存?假设我们有一个性能开销比较大的计算属性 A,它需要遍历一个巨大的数组并做大量的计算。然后我们可能有其他的计算属性依赖于 A 。如果没有缓存,我们将不可避免的多次执行 A 的 getter!如果你不希望有缓存,请用方法来替代。

1.3、计算属性的getter和setter

计算属性中默认提供了一个getter

computed: {
    // 计算属性的 getter
    reversedMessage: function () {
      // `this` 指向 vm 实例
      return this.message.split('').reverse().join('')
    }
  }

即以上代码的真正写法是:

computed: {
    reversedMessage: function () {
    	get: {
   		   return this.message.split('').reverse().join('')
    	}
    }
  }

如果有需要,我们还可以为计算属性中添加setter方法:

computed: {
  fullName: {
    // getter
    get: function () {
      return this.firstName + ' ' + this.lastName
    },
    // setter
    set: function (newValue) {
      var names = newValue.split(' ')
      this.firstName = names[0]
      this.lastName = names[names.length - 1]
    }
  }
}

之后可以通过vm.fullName去调用setter方法。

二、侦听属性

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

<div id="vue13">
		<p v-on:click='counter++'>点我计数:{{counter}}</p>
		<p>旧值:{{oldCounter}} | 新值:{{newCounter}}</p>
	</div>
new Vue({
	el: '#vue13',
	data: {
		counter: 1,
		oldCounter: 1,
		newCounter: 1
	},
	watch: {
		counter: function(newMessage,oldMessage){
			this.newCounter = newMessage;
			this.oldCounter = oldMessage;
		},
		oldCounter: function(newMessage,oldMessage){

		},
		newCounter: function(newMessage,oldMessage){

		}
	}
})

在这里插入图片描述

用Python可视化硅晶体生长:3D图解<100>/<110>/<111>晶向差异 本文通过Python 3D可视化技术,详细解析了硅晶体生长中<100>、<110>、<111>三种关键晶向的差异及其在半导体工业中的应用。从密勒指数转换到原子密度计算,结合交互式3D模型展示不同晶向的原子排列特性,帮助读者深入理解晶向对芯片性能的影响。 阅读详情

相关推荐

ST7102驱动移植与调试实战

本文详细介绍了在君正T40平台上移植和调试ST7102 LCD驱动芯片的实战经验。内容涵盖硬件接口配置、时序参数调整、寄存器初始化序列编写及常见问题解决,重点解析了ST7102单芯片集成显示与触控功能的特性,为嵌入式设备显示驱动开发提供实用指南。

k6l7m8n9的博客 1415

(五)计算属性

(五)计算属性 5.1 计算属性的基本使用 ​ 现在有变量姓氏和名字,要得到完整的名字。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

qq_45853870的博客 411

使用广播星历进行 GPS 卫星位置的计算

目录1.计算卫星运动的平均角速度 n2.计算观测瞬间卫星的近地点角3.计算偏近点角4.计算真近点角 f5.计算升交角距 6.计算摄动改正项7.进行摄动改正 8.计算卫星在轨道面坐标系中的位置9.计算观测瞬间升交点的经度 L10.计算卫星在瞬时地球坐标系中的位置11.计算卫星在协议地球坐标系中的位置使用广播星历进行GPS卫星位置的计算的详细步骤如下:关于在广播星历中各参数的分布情况可以参考下图:首先根据广播星历中给出的参数 计算参考时刻(TOE) 的平均角速度 式中,GM为万有引力常数 G 与地球总质量

qq_43381998的博客 5570

(十)Vue之侦听/监听/监视属性

先看一个需求:点击按钮切换在凉爽和炎热之间切换。

忆亦何为的博客 1028

Arm Neoverse CMN-700 QoS与PrefetchTarget架构解析

在现代多核处理器系统中,内存访问性能优化是提升整体效能的关键。QoS(服务质量)技术通过优先级调控机制,确保关键任务获得更高的缓存带宽和内存访问权限。PrefetchTarget作为预取技术的一种实现,能够显著降低内存访问延迟,特别适用于AI训练和数据库系统等高性能计算场景。Arm Neoverse CMN-700通过RN SAM模块实现了硬件级的地址范围检测和优先级调控,支持最多8个独立内存区域的QoS配置。测试数据显示,合理配置QoS可使关键任务延迟降低40%,而PrefetchTarget技术则能减少

weixin_36197669的博客 316

stm32教程之三重ADC交错采样

ps:本文基于stm32F407ZGT6单片机 stm32F4单片机单通道采集的最大采样率为2.4M,所以有时会难以满足较高频率的采样,于是查阅芯片手册,发现stm32F4支持多重ADC采集,利用每个通道的转换时间,错位采样,从而提高采样率,最大把采样率开到2.4*3=7.2M. (去年初学ADC时研究的,基于cube和HAL库的三重ADC交错采样参考资料不多,我也是研究了一段时间,写下这篇博客希望可以帮助到更多人。) 示意图如下: 以下是官方例子的说明, In this ex...

weixin_52178036的博客 8877

Vue指令练习实例-学生信息录入

很好的一个可以感受Vue.js的MVVM模型,数据和模型双向绑定的实例练习。 html lang="en"> head> meta charset="UTF-8"> title>vue指令title> style> #app{ margin: 50px auto; width:600px;

Lawliet 2786

《网络安全自学教程》- 802.1x协议

802.1x协议架构,工作原理/认证流程,认证方式,MAB认证,触发认证的三种方式,EAP报文格式,EAPOL报文格式

wangyuxiang946的博客 2万+

Vue - 计算属性

1.vue计算属性-computed 一个数据, 依赖另外一些数据计算而来的结果 场景: 一个变量的值, 需要用另外变量计算而得来 语法: computed: { "计算属性名" () { return "值" } } 注意1: 计算属性和data属性都是变量-不能重名. 用法和data相同 注意2: 函数内变量变化, 会自动重新计算结果返回 例子: 需求: 需求1: 求2个数的和显示到页面上 需求2: 字符串翻转 <template> &l

小海的博客 5万+

Transformer-LSTM预测 | 基于Transformer-LSTM的多变量单步时间序列预测(Matlab)

Transformer-LSTM预测 | 基于Transformer-LSTM的多变量单步时间序列预测(Matlab)

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 192

Kimi Code国产AI编程助手安装使用详细教程

Kimi Code 开发者智能编程服务简介:Kimi Code 是专为开发者提供的 AI 编程辅助工具,基于旗舰模型 Kimi K3(2.8万亿参数,支持100万token上下文)。提供 CLI、VS Code 插件等形式,支持代码阅读、编辑等功能。用户可通过API Key接入第三方工具。安装简单(Windows/Mac/Linux一键脚本),需在官网生成API密钥并登录使用。注意账户需充值余额方可正常调用服务。

猿小白的博客 2080

Vue之计算属性(computed)

计算属性以上就是计算属性的大致讲解。

浩泽学编程的博客 3万+

SAP-ABAP:SAP基础数据校验工具开发系列博客(共5篇) 第一篇:需求梳理与架构设计:从零搭建SAP主数据校验能力底座

摘要: 本系列博客介绍SAP主数据校验工具的开发和设计,旨在解决物料、供应商、客户等主数据录入不规范、关联缺失和合规性问题。第一篇聚焦需求梳理与架构设计,提出分层技术架构(展示层、业务逻辑层、数据访问层),支持实时校验和批量校验两种模式,并详细说明规则引擎设计、SAP系统对接方案及权限管控逻辑。后续篇章将深入规则引擎实现、接口对接、结果可视化和性能优化,帮助构建集中式、可配置的主数据校验能力,提升SAP数据质量。

baidu_35680696的博客 332

【Vue.js】005-Vue.js计算属性和侦听器

一、计算属性 1、概述 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。例如: <div id="example"> {{ message.split('').reverse().join('') }} </div> 在这个地方,模板不再是简单的声明式逻辑。你必须看一段时间才能意识到,这里是想要显示变量 message 的翻转字符串。当你想要在模板中多包含此处的翻转字符串时,就会更加难以处理。 所以,对于任何复

訾博(ZiBo)的博客 237

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Vue.js计算属性和侦听器

在Vue.js中,计算属性和侦听器都用于处理数据的响应式逻辑,但它们的使用场景有所不同。

qq_25699299的博客 448

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Vue.js中计算属性、方法和侦听器的用法

Vue.js中计算属性、方法和侦听器的用法 在写博客之前再做一个自我介绍,本人是一个初入IT行业的大专实习生,写博客的原因就是记录所学技术和吐槽公司,在公司里主要做Android部分的开发,悄悄说一声,整个公司就是本人(狗子)一人在Android方面独当一面,虽然我只是个实习生。 今天分享一下我学习Vue.js对于计算属性、方法和侦听器这三个的用法和不同之处 <!DOCTYPE html&g...

itboy_xiaowei的博客 276

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Vue.js 计算属性和侦听器

计算属性和侦听器 计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。例如: &lt;div id="example"&gt; {{ message.split('').reverse().join('') }} &lt;/div&gt; 在这个地方,模板不再是简单的声明式逻辑。你必须看一段时间才能意...

GarfieldEr007的专栏 921

Vue.js 的计算属性和侦听器:提升数据处理与交互的关键工具

计算属性是 Vue.js 赋予开发者基于响应式依赖进行复杂计算的有力工具。它能缓存计算结果,仅当相关依赖发生变化时才重新计算。这一特性使得在处理频繁使用且计算成本较高的数据时,性能得到显著提升。在 Vue 实例的computed选项中定义计算属性函数。以一个电商场景为例,假设有一个商品列表,每个商品对象包含price(价格)和quantity(数量)属性,需要计算商品总价。首先在 Vue 组件的datadata() {return {然后在computed选项中定义计算商品总价的计算属性});

FFNCL的博客 1425

Vue.js中的computed和watch:理解计算属性和侦听器

本文将介绍Vue.js中的computed和watch,以及它们在响应式数据中的应用。通过了解这两个概念,开发者可以更好地利用Vue.js的响应式系统,提高开发效率。computed和watch是Vue.js中的两个重要概念,它们用于处理响应式数据。了解这两个概念对于开发者来说至关重要,因为它有助于提高开发效率和代码的可维护性。通过合理使用computed和watch,开发者可以更好地利用Vue.js的响应式系统,提高开发效率。

你若盛开,清风自来 1050

Vue.js(五)计算属性、方法和侦听器

官方文档: https://cn.vuejs.org/v2/guide/computed.html 一个栗子: <div id="root"> <div>{{firstName + " " + lastName}}</div> </div> <script> var vm = new Vue({ el:...

OneFine的技术博客 733

【Vue.js基础教程】第4章 vue计算属性computed和侦听器watch的使用方法

掌握计算属性和侦听器的用法,是写好 Vue 应用的重要基础。理解它们的区别和适用场景,不仅能提升代码可读性,还能让项目更高效地运行。希望这篇文章对你有帮助!如果有疑问或者建议,欢迎评论交流😊。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 457

《Vue零基础教程》(4)Vue.js计算属性和侦听器

本文介绍了Vue中的计算属性和侦听器。计算属性用于对数据进行加工处理,具有缓存特性,适合处理复杂逻辑。文中通过字符串反转案例展示了表达式、方法和计算属性三种实现方式,并对比了它们的优缺点。侦听器(watch)用于监听数据变化并执行相应操作,文中演示了通过侦听器实现全名拼接的功能。计算属性适合数据加工场景,侦听器适合响应数据变化的场景,两者都是Vue中重要的响应式特性。

yaogis888的博客 326

Vue.js基础学习(二、实例、模板语法、计算属性和侦听器)

Vue.js基础学习 二Vue 实例1.创建一个 Vue 实例2.数据与方法3.实例生命周期钩子4.生命周期图示模板语法1.插值文本(v-once 指令:执行一次性地插值)原始 HTML(v-html 来复合局部模板)特性使用 JavaScript 表达式2.指令参数修饰符3.缩写`v-bind `缩写`v-on` 缩写计算属性和侦听器计算属性基础例子计算属性缓存 vs 方法计算属性 vs 侦听属...

qq_21199329的博客 2295

Vue.js 学习笔记三:计算属性和侦听器

目录 计算属性和侦听器 计算属性 基础例子 计算属性缓存 侦听器 计算属性和侦听器 计算属性 我们知道,在模板中可以直接通过插值语法显示一些 data 中的数据。但是在某些情况,我们可能需要对数据进行一些转化后再显示,或者需要将多个数据结合起来进行显示。 基础例子 比如我们有 firstName 和 lastName 两个变量,我们需要显示完整的名称,但是如果多个地方都需要显示完整的名称,我们就需要写多个{{firstName}} {{lastName}}。 我们可以将上面的代码换.

Stary 的 IT 之旅 253

【玩转Vue.js】数据侦听和计算属性实现原理

引言: 在 Vuejs 中用 watch 来侦听数据变化,computed 用来监听多个属性的变化并返回计算值,那么这两个特性是如何实现的呢?本文讲一下两者实现的具体方法以及一些使用经验,介绍过程中会使用到前面【核心原理】篇中的知识,建议先看透原理再看本文,可以达到互相印证加深理解的效果。 结论: 由前面的【Vue核心原理】篇中介绍的数据绑定可以了解到,如果想监听某个属性的数据变化...

bandongli1265的博客 346

Vue.js 实战教程 V2.x(7)计算属性和侦听器

7计算属性和侦听器 7.1计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。 在模板中放入太多的逻辑会让模板过重且难以维护。 所以,对于任何复杂逻辑,你都应当使用计算属性。 基础例子 <div id="example"> <p>Original message: "{{ message }}"</p> <p&g...

大强博客 698
上一篇: Vue.js指令的使用
下一篇: Vue.js表单v-model指令
BoringRong
BoringRong 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 2万+粉丝 386原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值