当前位置: 首页 > news >正文

Vue.js教学第五章:计算属性与侦听器详解

Vue.js 之计算属性与侦听器详解


一、计算属性

(一)概念

计算属性(Computed Properties)是 Vue.js 中的一个核心概念。它允许我们基于一个或多个数据属性来定义一个新的属性,该属性的值会根据其依赖的数据属性的变化而自动更新。这就好像是一个 “智能” 属性,它的值不是固定的,而是动态的,依据其他数据的变化而变化。

(二)工作原理

计算属性是基于 Vue.js 的响应式系统来工作的。当你在 Vue 实例中定义一个计算属性时,Vue 会自动追踪该计算属性所依赖的数据。当任何一个被依赖的数据发生变化时,计算属性会重新计算其值。这个过程是高效且智能的,Vue 内部会优化计算属性的更新时机,确保在数据变化时及时更新计算属性,同时也不会进行不必要的重复计算。

(三)优势

  1. 简化模板逻辑 :在模板中,我们经常需要对数据进行一些处理后才能展示。使用计算属性可以将这些处理逻辑从模板中分离出来,让模板保持简洁和可读性。例如,我们有一个对象数组,想在模板中展示每个对象中两个字段相加的结果。如果不用计算属性,我们可能需要在模板中使用复杂的 JavaScript 表达式;而有了计算属性,我们就可以预先定义好这个相加的逻辑,模板中只需简单引用计算属性即可。

  2. 提高性能 :由于计算属性具有缓存机制,当计算属性所依赖的数据没有发生变化时,它不会重新计算值,而是直接返回之前计算的结果。这样可以避免重复的复杂计算,提高应用的性能。相比之下,如果在模板中使用普通的 JavaScript 函数来实现类似的逻辑,每次模板重新渲染时都会调用该函数,可能导致不必要的重复计算。

(四)定义和使用示例

  1. 基础示例

<div id="app"><p>原姓名:{{firstName}} {{lastName}}</p><p>全名:{{fullName}}</p>
</div><script>
const app = Vue.createApp({data() {return {firstName: '张',lastName: '三'};},computed: {fullName() {return this.firstName + this.lastName;}}
});
app.mount('#app');
</script>

在这个例子中,fullName 就是一个计算属性。它依赖于 firstNamelastName 两个数据属性。在模板中,我们直接使用 {{fullName}} 来展示计算后的全名。当 firstNamelastName 发生变化时,fullName 会自动重新计算并更新视图。

  1. 带有条件判断的计算属性

<div id="app"><p>原价格:{{price}}</p><p>折扣:{{discount}}</p>

相关文章:

  • Google Gen AI Python SDK 开发教程
  • 代码案例分析
  • 内容中台智能推荐系统构建与演进
  • 大学之大:墨西哥国立自治大学2025.5.18
  • 串口通讯协议学习
  • 通过觅思文档项目实现Obsidian文章浏览器在线访问
  • 代码随想录-数组
  • Qt 信号和槽-核心知识点小结(11)
  • 创业分析平台Web端-三大前端核心语言详解-首页index
  • 71. 简化路径
  • 低功耗模式介绍
  • Kotlin协程异常处理全解析
  • 渗透测试核心技术:信息收集与扫描
  • 计算机系统的工作原理
  • 学习wps的书写格式(题目黑体,加粗,三号)
  • Python列表全面解析:从入门到精通
  • defer关键字:延迟调用机制-《Go语言实战指南》
  • 【android bluetooth 协议分析 01】【HCI 层介绍 4】【LeSetEventMask命令介绍】
  • C++实现伽罗华域生成及四则运算(二)
  • UI架构的历史与基础入门
  • 被央视曝光“废旧厂区沦为垃圾山”,江西萍乡成立调查组查处
  • 中国首颗地质行业小卫星“浙地一号”成功发射
  • 哪条线路客流最大?哪个站点早高峰人最多?上海地铁一季度客流报告出炉
  • 当智慧农场遇见绿色工厂:百事如何用科技留住春天的味道?
  • 马上评|训斥打骂女儿致死,无暴力应是“管教”底线
  • 河南信阳:对违规吃喝问题不遮丑不护短,露头就打、反复敲打