1. 程式人生 > 其它 >Vue:重要總結

Vue:重要總結

總結

  1. 元件例項上的屬性(從data,computed得來) 被修改時,vue能夠監測得到,並重新解析模板上的資料,這個過程叫 響應式
  2. 元件例項上的屬性或者下級屬性想要支援響應式,需要有get和set方法支援。
  3. 模板用到了元件例項的a屬性物件裡的b屬性,且b屬性並沒有原先定義好,此情況是不會報錯的。但如果元件例項a屬性沒有定義,而模板卻用到了,則會報錯。
    不會報錯:
<template>
  <h1>{{person.age}}</h1>
</template>

new Vue({
  el: '#app',
  data: {
    person: {
      
    }
  }
})

會報錯:

<template>
  <h1>{{person}}</h1>
</template>

new Vue({
  el: '#app',
  data: {
  }
})
  1. 預先定義好的屬性(在data,computed..)是支援響應式的。後面動態追加的屬性,用原生寫法不支援響應式(比如age未定義,在methods某個方法裡執行 this.person.age = 18,屬性確實加上並且賦值為18了,但非響應式,即vue並不會重新去解析模板),得使用Vue.set()或者 this.$set() 來追加一個屬性並支援響應式。

  2. 在data,conputed,methods中的屬性和方法最終都會作為當前元件例項的屬性和方法。

  3. 在元件例項上根級屬性或下級屬性中,只要是陣列型別的屬性,此屬性中的元素不具備set和get方法,即預設不支援響應式。如果需要陣列元素支援響應式,有兩種方法:

  1. 呼叫陣列的push,splice,shift等能對原陣列造成改變的陣列方法,這些方法會觸發重新解析模板。
  2. 使用Vue.set()或者 this.$set()