偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Vue3 學(xué)習(xí)筆記,如何理解 Computed 計(jì)算屬性

開發(fā) 前端
Computed 計(jì)算屬性是基于它們的依賴進(jìn)行緩存的,這意味著只有在它們的依賴發(fā)生變化時(shí),才會(huì)重新計(jì)算。這使得它們更高效,因?yàn)樗鼈冎辉谛枰獣r(shí)才會(huì)計(jì)算,而不是每次都調(diào)用。

大家好,本篇文章我們繼續(xù)學(xué)習(xí)和 Vue 相關(guān)的內(nèi)容,今天我們歸納總結(jié)下什么是 computed 計(jì)算屬性、如何使用和應(yīng)用場(chǎng)景,以及 computed 和 Method 事件的區(qū)別和應(yīng)用場(chǎng)景。

什么是 computed 計(jì)算屬性

Vue.js 中的 computed 計(jì)算屬性是一種特殊類型的屬性,它們的值不是簡單地被設(shè)置,而是根據(jù)其它屬性的值計(jì)算得出。

computed 計(jì)算屬性是基于它們的依賴進(jìn)行緩存的,這意味著只有在它們的依賴發(fā)生變化時(shí),才會(huì)重新計(jì)算。這使得它們更高效,因?yàn)樗鼈冎辉谛枰獣r(shí)才會(huì)計(jì)算,而不是每次都調(diào)用。

下面是一個(gè)示例,展示了如何使用 computed 計(jì)算屬性:

<template>
  <div>
    <p>Full name: {{ fullName }}</p>
    <input v-model="firstName">
    <input v-model="lastName">
  </div>
</template>

<script>
export default {
  data() {
    return {
      firstName: 'John',
      lastName: 'Doe'
    }
  },
  computed: {
    fullName() {
      return this.firstName + ' ' + this.lastName
    }
  }
}
</script>

在這個(gè)例子中,當(dāng) firstName 或 lastName 發(fā)生變化時(shí),fullName 會(huì)自動(dòng)重新計(jì)算。

computed 和 method 事件的區(qū)別

與 computed 計(jì)算屬性不同的是,methods 方法是每次都會(huì)調(diào)用的,不能進(jìn)行緩存。如果你需要在每次渲染時(shí)都計(jì)算一個(gè)值,那么使用 methods 方法會(huì)更好。

下面是一個(gè)使用 methods 方法的示例:

<template>
  <div>
    <p>Full name: {{ getFullName() }}</p>
    <input v-model="firstName">
    <input v-model="lastName">
  </div>
</template>

<script>
export default {
  data() {
    return {
      firstName: 'John',
      lastName: 'Doe'
    }
},
  methods: {
    getFullName() {
      return this.firstName + ' ' + this.lastName
    }
  }
}
</script>

在這個(gè)例子中,每次渲染時(shí)都會(huì)調(diào)用 getFullName 方法,而不是緩存其結(jié)果。

總結(jié)一下

適用 computed 計(jì)算屬性的場(chǎng)景是:

  • 適合一些簡單的操作,比如數(shù)組排序或篩選
  • 計(jì)算屬性可以直接在HTML中使用,像 Data 中的屬性一樣使用。
  • 當(dāng)你需要基于其它屬性計(jì)算一個(gè)新的值。
  • 當(dāng)你需要緩存計(jì)算結(jié)果,因?yàn)檫@樣能提高應(yīng)用的性能。

適用 methods 方法的場(chǎng)景是:

  • 當(dāng)你需要在每次渲染時(shí)都計(jì)算一個(gè)值。
  • 當(dāng)你需要執(zhí)行一些復(fù)雜的邏輯或者需要調(diào)用外部函數(shù)。
  • 方法通常作為事件監(jiān)聽或公共業(yè)務(wù)邏輯
  • 方法可以當(dāng)做普通 JS 函數(shù)使用

另外,計(jì)算屬性是可以被觀察的,可以被用在指令和計(jì)算屬性依賴中。而 method 方法不能被觀察到,不能用在指令和計(jì)算屬性依賴中。

再舉一個(gè)例子:

<template>
  <div>
    <p>Price: {{ price }}</p>
    <p>Discount: {{ discount }}%</p>
    <p>Discounted price: {{ discountedPrice }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      price: 100,
      discount: 10
    }
  },
  computed: {
    discountedPrice() {
      return this.price * (1 - this.discount / 100)
    }
  }
}
</script>

在這個(gè)例子中,discountedPrice 是基于 price 和 discount 計(jì)算得出的,并且當(dāng) price 或 discount 發(fā)生變化時(shí),discountedPrice 會(huì)自動(dòng)重新計(jì)算。 而如果用 method 實(shí)現(xiàn)的話,每次都會(huì)計(jì)算一遍,而不是只在需要時(shí)計(jì)算。

總之,computed 計(jì)算屬性是一種高效的方式,能夠基于其它屬性進(jìn)行計(jì)算并緩存結(jié)果,而 methods 方法則是每次都會(huì)調(diào)用并進(jìn)行計(jì)算。

結(jié)束

今天的內(nèi)容就介紹到這里,內(nèi)容比較簡單,希望對(duì)你有所幫助。

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2021-12-08 09:09:33

Vue 3 Computed Vue2

2024-05-27 08:39:17

Vue3變量響應(yīng)式

2023-11-28 09:03:59

Vue.jsJavaScript

2023-12-06 07:43:56

Vue如何定義事件

2021-12-01 08:11:44

Vue3 插件Vue應(yīng)用

2021-11-30 08:19:43

Vue3 插件Vue應(yīng)用

2021-12-02 05:50:35

Vue3 插件Vue應(yīng)用

2021-11-16 08:50:29

Vue3 插件Vue應(yīng)用

2022-06-26 00:00:02

Vue3響應(yīng)式系統(tǒng)

2021-12-29 07:51:21

Vue3 插件Vue應(yīng)用

2023-12-14 08:25:14

WatchVue.js監(jiān)聽數(shù)據(jù)

2022-07-14 08:22:48

Computedvue3

2021-11-17 08:24:47

Vue3 插件Vue應(yīng)用

2023-11-29 08:49:31

Vue.jsData 函數(shù)

2021-11-26 05:59:31

Vue3 插件Vue應(yīng)用

2022-04-11 08:03:30

Vue.jscomputed計(jì)算屬性

2024-11-06 10:16:22

2021-12-14 21:43:13

Vue3函數(shù)computed

2022-07-20 11:13:05

前端JSONVue3

2020-09-19 21:15:26

Composition
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)