vue v-model 計算屬性


Vue 還提供了 v-model 指令,它能輕松實現表單輸入和應用狀態之間的雙向綁定。 即修改頁面的值可導致變量修改,

單個復選框,綁定到布爾值 獲取是布爾值

多個復選框,綁定到同一個數組 獲取是數組 對應復選框的value 如果沒有設置 默認是html值

單選按鈕  選擇框   獲取對應的val 

修飾符 數據處理

<!-- “change”時而非“input”時更新 -->

<input v-model.lazy="msg">

<!-- 自動將用戶的輸入值轉為數值類型 -->

<input v-model.number="age" type="number">

<!-- 自動過濾用戶輸入的首尾空白字符 -->

<input v-model.trim="msg">

 

 

 

計算屬性:模板內的表達式非常便利,但是設計它們的初衷是用於簡單運算的。在模板中放入太多的邏輯會讓模板過重且難以維護。

<div id="example">

  {{ message.split('').reverse().join('') }}

</div>

對於任何復雜邏輯,你都應當使用計算屬性。

<div id="example">

  <p>Original message: "{{ message }}"</p>

  <p>Computed reversed message: "{{ reversedMessage }}"</p>

</div>

var vm = new Vue({

  el: '#example',

  data: {

    message: 'Hello'

  },

  computed: {

    // 計算屬性的 getter

    reversedMessage: function () {

      // `this` 指向 vm 實例

      return this.message.split('').reverse().join('')

    }

  }

})

計算屬性是基於它們的響應式依賴進行緩存。只在相關響應式依賴發生改變時它們才會重新求值。不希望有緩存,可以使用函數方法的形式來代替。

偵聽屬性:Vue 提供了一種更通用的方式來觀察和響應 Vue 實例上的數據變動:偵聽屬性。watch

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

var vm = new Vue({

el: '#demo',

data: {

    firstName: 'Foo',

    lastName: 'Bar',

fullName: 'Foo Bar'

},

computed: {

  fullName: {

    // getter

    get: function () {

      return this.firstName + ' ' + this.lastName

    },

    // setter ---在全稱改變是也會引起firstNamelastName改變

    set: function (newValue) {

      var names = newValue.split(' ')

      this.firstName = names[0]

      this.lastName = names[names.length - 1]

    }

  }

}

})

偵聽器:

雖然計算屬性在大多數情況下更合適,但有時也需要一個自定義的偵聽器。當需要在數據變化時執行異步或開銷較大的操作時,這個方式是最有用的。

使用 watch 選項允許我們執行異步操作 (訪問一個 API),限制我們執行該操作的頻率,並在我們得到最終結果前,設置中間狀態。這些都是計算屬性無法做到的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM