首頁>技術>

在如今程式設計都提出MVC、MVP或MVVM等模式的情況下,如果你還將業務邏輯和檢視層合在一起的話,會被人家笑掉大牙的。在Vue3.0中,在HTML(相當於檢視層)插值方式是可以負責計算(相當於業務邏輯),但不提倡你這麼用,因為Vue3.0有計算屬性。

7.1 計算屬性

將計算放置在模板中,模板將不再是簡單的和宣告性的,此時,你必須先看一下它,然後才能意識到它執行的計算取決於chen.lang。如果要在模板中多次包含此計算,則問題會變得更糟。

所以,對於任何包含響應式資料的複雜邏輯,你都應該使用計算屬性,聽到了沒?如果沒有的話,那就看看程式碼吧。計算屬性放在computed裡面,函式放在methods裡面。

<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <title>Vue3.0計算屬性</title>    <script src="vue.global.js"></script></head><body><span id="app">    <span>在插值中計算的結果:{{ chen.lang.length > 10 ? '太多了' : '還好' }}    </span><br/>    <span>獲取計算屬性的結果:{{ langCount }}</span></span><script>    Vue.createApp({        data() {            return {                chen: {                    name: 'IT界老傢伙',                    lang: [                        'Python',                        '前端',                        '小程式',                        'Java',                        'Android App',                        'iOS App'                    ]                }            }        },        computed: {            // 計算屬性的 getter            langCount() {                return this.chen.lang.length > 10 ? '太多了' : '還好'            }        }    }).mount("#app")</script></body></html>

輸出結果

細心的朋友,可能就會問了,那我用函式計算行不行。如果不考慮效能的話,當然可以的。只是函式和計算屬性的區域在於,計算屬性有快取的作用,而函式沒有。

在操作過程中,如果內容沒有改變,計算屬性不會重新計算,而函式每次都會進行計算。用函式計算的程式碼,我發出來,你自己複製進去就好。

#前端##Vue.js##JavaScript##程式設計師##Web#

13
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Package 打包上傳到中央倉庫的時候提示 SCM