如下,對於任何複雜邏輯,應當使用計算屬性。
計算屬性-01title
>
head
>
>
>
>
firstname: type
="text"
v-model
="firstname"
>
p>
>
lastname: type
="text"
v-model
="lastname"
>
p>
>
fullnamebycomputed: }
p>
>
fullnamebymethod: }
p>
>
now: }
p>
>
now1: }
p>
div>
src=
"">
script
>
>
(function()
, methods:
, now1:
function()
},<
!-- 計算屬性 --
>
computed:
, now:
function()
}});
})()
;script
>
body
>
html
>
在上示例中,計算屬性只有在它的相關依賴發生改變時才會重新求值。這就意味著只要 firstname 或者 lastname 還沒有發生改變,多次訪問 fullnamebycomputed 計算屬性會立即返回之前的計算結果,而不必再次執行函式。相比之下,每當觸發重新渲染時,呼叫methods將總會再次執行函式。
使用計算屬性還是 methods 取決於你是否需要快取,當遍歷大陣列和做大量計算時,應當使用計算屬性,除非你不希望得到快取。
上示例中,在輸入框中輸入內容時,頁面上now的值不會改變,但是now1的值會跟著變動。如下↓↓↓:
絕大多數情況下,我們只會用預設的 getter 方法來讀取乙個計算屬性,在業務中很少用到setter,所以在宣告乙個計算屬性時,可以直接使用預設的寫法,不必將 getter 和 setter 都宣告。
計算屬性-02title
>
head
>
>
>
>
firstname: type
="text"
v-model
="firstname"
>
p>
>
lastname: type
="text"
v-model
="lastname"
>
p>
>
fullname: type
="text"
v-model
="fullname"
>
p>
>
fullname1: type
="text"
v-model
="fullname1"
>
p>
div>
src=
"">
script
>
>
(function()
, computed:
,<
!-- 當fullname變化時,firstname和lastname也會變化 --
>
set:
function
(newval)},
<
!-- 預設就是上邊fullname中get
-->
fullname1:
function()
}});
})()
;script
>
body
>
html
>
16Vue 計算屬性(基礎例子
在模板中繫結表示式是非常便利的,但是它們實際上只用於簡單的操作。在模板中放入太多的邏輯會讓模板過重且難以維護。例如 在這種情況下,模板不再簡單和清晰。在實現反向顯示 message 之前,你應該確認它。這個問題在你不止一次反向顯示 message 的時候變得更加糟糕。這就是為什麼任何複雜邏輯,你都應...
16 《vue之自定義指令》
1 自定義指令 使用vue.directive id,definition 註冊全域性自定義指令,使用元件的directives選項註冊區域性自定義指令。2 鉤子函式 指令定義函式提供了幾個鉤子函式 可選 bind 只呼叫一次,指令第一次繫結到元素時呼叫,用這個鉤子函式可以定義乙個在繫結時執行一次的...
vue 計算屬性
在這裡我覺得講 computed 和methods放在一起討論 更 便於 理解。computed var vm new vue computed methods methods methods和computed從顯示效果是一樣的,但是主要的區別是 1.computer 是存在快取的,在data沒有改...