溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue中的計算屬性computed怎么用

發(fā)布時間:2022-10-28 09:05:05 來源:億速云 閱讀:122 作者:iii 欄目:編程語言

今天小編給大家分享一下Vue中的計算屬性computed怎么用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

一、計算屬性computed

1.1.什么是計算屬性computed

computed 是基于它的依賴緩存,只有在它的相關依賴發(fā)生改變時才會進行更新。官方文檔是這樣說的:對于任何包含響應式數(shù)據(jù)的復雜邏輯,你都應該使用計算屬性。?

1.2.復雜數(shù)據(jù)的處理-computed

拼接字符串、分數(shù)是否及格、message記錄一段文字,這里是用computed實現(xiàn)的

<div id="app">
      <!-- 插值語法表達式直接進行拼接 -->
      <!-- 1.拼接姓名 -->
      <h3>{{fullname}}</h3>

      <!-- 2.顯示分數(shù)及格或不及格 -->
      <h3>{{scorelevel}}</h3>

      <!-- 3.反轉單詞 -->
      <!-- reverse針對于數(shù)組,先用split轉為數(shù)組,在用reverse -->
      <h3>{{reversetext}}</h3>
    </div>
    <script src="../lib/vue.js"></script>
    <script>
      const app = Vue.createApp({
        data() {
          return {
            // name
            firstName: "kk",
            lastName: "cc",

            // score
            score: 99,

            // 文本中單詞反轉
            message: "I love stydy Vue3",
          };
        },
        computed: {
          fullname() {
            return this.firstName + " " + this.lastName;
          },
          scorelevel() {
            return this.score >= 60 ? "及格" : "不及格";
          },
          reversetext() {
            return this.message.split(" ").reverse().join(" ");
          },
        },
      });
      app.mount("#app");

當然我們用Mustache插值語法、methods也是可以完成的,但是對于復雜數(shù)據(jù)的處理,我們往往采用computed,寫法更清晰,且計算屬性是有緩存的

1.3.計算屬性的緩存

  • 會基于它們的依賴關系進行緩存;

  • 在數(shù)據(jù)不發(fā)生變化時,計算屬性是不需要重新計算的;

  • 但是如果依賴的數(shù)據(jù)發(fā)生變化,在使用時,計算屬性依然會重新進行計算;

&tinsp;
所以這也是我們在復雜數(shù)據(jù)處理時更傾向于computed

  • 在使用相同次數(shù)的fullName時,methods執(zhí)行三次,computed執(zhí)行一次,這正是由于computed計算屬性會被緩存

Vue中的計算屬性computed怎么用
Vue中的計算屬性computed怎么用

1.4.計算屬性computed的setter和getter

大多數(shù)情況下,計算屬性只需要一個getter方法,那么此時computed屬性屬性值為函數(shù)

如果想要設置計算屬性的值,我們可以給計算屬性設置一個setter方法

computed: {
          // 語法糖
          fullname() {
            return this.firstname + " " + this.lastname;
          },

          // 完整寫法
          fullname: {
            get: function () {
              return this.firstname + " " + this.lastname;
            },
            set: function (value) {
              const names = value.split(" ");
              this.firstname = names[0];
              this.lastname = names[1];
            },
          },

以上就是“Vue中的計算屬性computed怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI