欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue.js每天必學之計算屬性computed與$watch

 更新時間:2016年09月05日 09:48:30   作者:i10630226  
Vue.js每天必學之計算屬性computed與$watch,為大家詳細講解計算屬性computed與$watch,感興趣的小伙伴們可以參考一下

在模板中綁定表達式是非常便利的,但是它們實際上只用于簡單的操作。模板是為了描述視圖的結構。在模板中放入太多的邏輯會讓模板過重且難以維護。這就是為什么 Vue.js 將綁定表達式限制為一個表達式。如果需要多于一個表達式的邏輯,應當使用**計算屬性**。

 基礎例子

<div id="example">
 a={{ a }}, b={{ b }}
</div>

var vm = new Vue({
 el: '#example',
 data: {
 a: 1
 },
 computed: {
 // 一個計算屬性的 getter
 b: function () {
 // `this` 指向 vm 實例
 return this.a + 1
 }
 }
})

這里我們聲明了一個計算屬性 b。我們提供的函數(shù)將用作屬性 vm.b的 getter。

console.log(vm.b) // -> 2
vm.a = 2
console.log(vm.b) // -> 3

你可以打開瀏覽器的控制臺,修改 vm。vm.b 的值始終取決于 vm.a 的值。

你可以像綁定普通屬性一樣在模板中綁定計算屬性。Vue 知道 vm.b 依賴于 vm.a,因此當 vm.a 發(fā)生改變時,依賴于 vm.b 的綁定也會更新。而且最妙的是我們是聲明式地創(chuàng)建這種依賴關系:計算屬性的 getter 是干凈無副作用的,因此也是易于測試和理解的。

計算屬性 vs. $watch

Vue.js 提供了一個方法 $watch,它用于觀察 Vue 實例上的數(shù)據(jù)變動。當一些數(shù)據(jù)需要根據(jù)其它數(shù)據(jù)變化時, $watch 很誘人 —— 特別是如果你來自 AngularJS。不過,通常更好的辦法是使用計算屬性而不是一個命令式的 $watch 回調??紤]下面例子:

<div id="demo">{{fullName}}</div>

var vm = new Vue({
 el: '#demo',
 data: {
 firstName: 'Foo',
 lastName: 'Bar',
 fullName: 'Foo Bar'
 }
})

vm.$watch('firstName', function (val) {
 this.fullName = val + ' ' + this.lastName
})

vm.$watch('lastName', function (val) {
 this.fullName = this.firstName + ' ' + val
})

上面代碼是命令式的重復的。跟計算屬性對比:

var vm = new Vue({
 data: {
 firstName: 'Foo',
 lastName: 'Bar'
 },
 computed: {
 fullName: function () {
 return this.firstName + ' ' + this.lastName
 }
 }
})

這樣更好,不是嗎?

計算 setter

計算屬性默認只是 getter,不過在需要時你也可以提供一個 setter:

// ...
computed: {
 fullName: {
 // getter
 get: function () {
 return this.firstName + ' ' + this.lastName
 },
 // setter
 set: function (newValue) {
 var names = newValue.split(' ')
 this.firstName = names[0]
 this.lastName = names[names.length - 1]
 }
 }
}
// ...

現(xiàn)在在調用 vm.fullName = 'John Doe' 時,setter 會被調用,vm.firstName 和 vm.lastName 也會有相應更新。

本文已被整理到了《Vue.js前端組件學習教程》,歡迎大家學習閱讀。

關于vue.js組件的教程,請大家點擊專題vue.js組件學習教程進行學習。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • vue3實現(xiàn)局部頁面刷新效果的示例詳解

    vue3實現(xiàn)局部頁面刷新效果的示例詳解

    這篇文章主要為大家詳細介紹了vue3如何采用 App.vue定義全局變量與方法并實現(xiàn)局部頁面刷新效果,文中的示例代碼講解詳細,需要的可以參考一下
    2024-01-01
  • Vue之Dep和Observer的用法及說明

    Vue之Dep和Observer的用法及說明

    這篇文章主要介紹了Vue之Dep和Observer的用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • vue如何在用戶要關閉當前網頁時彈出提示的實現(xiàn)

    vue如何在用戶要關閉當前網頁時彈出提示的實現(xiàn)

    這篇文章主要介紹了vue如何在用戶要關閉當前網頁時彈出提示的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • vue最簡單的前后端交互示例詳解

    vue最簡單的前后端交互示例詳解

    這篇文章主要介紹了vue最簡單的前后端交互示例詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • vue3的二維碼組件vue3-next-qrcode

    vue3的二維碼組件vue3-next-qrcode

    這篇文章主要為大家介紹了vue3的二維碼組件vue3-next-qrcode示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • vue實現(xiàn)折疊展開收縮動畫效果

    vue實現(xiàn)折疊展開收縮動畫效果

    這篇文章主要介紹了vue實現(xiàn)折疊展開收縮動畫,通過scrollHeight實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2023-11-11
  • vxe-list?vue?如何實現(xiàn)下拉框的虛擬列表

    vxe-list?vue?如何實現(xiàn)下拉框的虛擬列表

    這篇文章主要介紹了vxe-list?vue?如何實現(xiàn)下拉框的虛擬列表,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Vue下拉框雙向聯(lián)動效果的示例代碼

    Vue下拉框雙向聯(lián)動效果的示例代碼

    這篇文章主要介紹了Vue下拉框雙向聯(lián)動效果,實現(xiàn)聯(lián)動,大家都知道在vue的頁面中,想要實現(xiàn)多個<el-select 下拉框的值動態(tài)改變,必須要調用@change 函數(shù),具體操作方法跟隨小編一起學習下吧
    2022-04-04
  • vue2 中如何實現(xiàn)動態(tài)表單增刪改查實例

    vue2 中如何實現(xiàn)動態(tài)表單增刪改查實例

    本篇文章主要介紹了vue2 中如何實現(xiàn)動態(tài)表單增刪改查實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • vue.js分頁中單擊頁碼更換頁面內容的方法(配合spring springmvc)

    vue.js分頁中單擊頁碼更換頁面內容的方法(配合spring springmvc)

    下面小編就為大家分享一篇vue.js分頁中單擊頁碼更換頁面內容的方法(配合spring springmvc),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02

最新評論