iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 8
1

計算屬性 Computed

今天來介紹的是 computed 這個方法,能夠直接將結果存到變數之中,並且是可以直接使用的,直接來看下面的範例會比較清楚唷!

<div id="app">
    {{ someText }}
</div>
new Vue({
  el: '#app',
  data: {
      
  },
  computed: {
      someText: function() {
        return 'Hello Vue';
      }
  }
})

這裡可以看到,我們在 Vue 的應用程式中建立了一個 computed 的物件,並在物件裡面建立方法,而方法中一定要 return 結果,這樣才能直接使用這個變數,如果打開頁面你會看到 'Hello Vue' 出現在頁面上。

接下來我們來看一個反轉字串的例子:
我們可以在 {{ }} 內撰寫表達式來作運算,並且呈現運算過後的資料結果。這裡也有利用的雙向綁定的特性,只要在輸入框內輸入內容,下方的段落就會即時更新唷!

<div id="app">
  <input type="text" v-model="msg">
  <p>
    {{msg.split('').reverse().join('')}}
  </p>
</div>
new Vue({
  el: '#app',
  data: {
      msg: 'Hello World'
  },
})

但是在 HTML 中運算並不是太理想,是不是有點眼花撩亂而且不便於維護與使用,這時可以利用 computed 的方法來改寫。

<div id="app">
  <input type="text" v-model="msg">
  <p>
    {{reverseText}}
  </p>
</div>
new Vue({
  el: '#app',
  data: {
      msg: 'Hello World'
  },
  computed: {
      reverseText: function() {
        return this.msg.split('').reverse().join('')
    }
  }
})

這樣的結果跟上面的是一樣的唷!不過這裡有一點需要特別注意的是,在 computed 裡若是需要取用到 data 裡的資料的話式需要加上 this 的,否則會沒辦法正確取用,而 computed 的計算方式是,如果所取用的 data 裡的資料有變動的時候,就會自動計算,若沒有取用到 data 裡的資料的話是不會自動計算的,這點需要特別注意。

那麼,明天再見囉!


上一篇
Day 7 : 列表渲染
下一篇
Day 9 : Watch 監聽屬性
系列文
Vue 學習筆記 - 讓你30天掌握 Vue31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言