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>
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

暮雨哀尘

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

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

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

打赏作者

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

抵扣说明:

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

余额充值