vue中的各種屬性


data

new vue({

  data:{

    'a':1

  }

})   是一個實例,data直接是一個對象

 

vue.component('my',{

  template:'',

  props:['title'],

  data: function() {

    return {

      'a':1 }

  }

})  是組件注冊,data 返回一個函數。組件是一個相對獨立的個體,如果data直接是一個對象的話,一個組件被多次使用時,屬性會相互影響。所以使用一個有返回值的函數來解決這個問題。

prop

Prop 是你可以在組件上注冊的一些自定義特性。當一個值傳遞給一個 prop 特性的時候,它就變成了那個組件實例的一個屬性。每次父級組件發生更新時,子組件中所有的 prop 都將會刷新為最新的值。但子組件傳值不能直接傳給父組件,要在子組件的method中利用$emit('父組件中on監聽的方法',值)自定義一個事件,並在父組件中引入子組件時,設置v-on:方法='方法',並在method中設置方法:function(值){}函數接收值。

詳細內容:https://www.cnblogs.com/sxgxiaoge/p/9453306.html

watch和computed

兩者都是監聽vue屬性,但是computed屬性中需要一個返回值,而且代碼是同步執行,而watch則不需要,代碼也可以是異步的。

computed: { fullName: { get: function(){ return this.firstName +this.lastName }, set: function (newValue) { var names = newValue.split(' ') this.firstName = names[0] this.lastName = names[names.length - 1] } } }, watch: { search: function(){ setTimeout(function(){ console.log(11); },200); } }
計算屬性中這兩個方法是固定的(get是默認的,可以自己加set),在調用和設置對應的值的時候會調用對應的函數。

computed 和 methods  watch區別

描述

vue 中computed 和methods 在使用效果來看可以說是一樣的,但是深入看還是不一樣的。區別就在於: computed 依賴緩存, methods 卻不是。怎么理解呢?當Dom每次需要渲染computed的值,這個值已經處於緩存之中,不需要再重復的經歷一遍計算過程,只有當computed依賴的數據變量發生變化,這個計算屬性會自動更新,不需要渲染觸發。methods 的值被獲取的時候就會每次都會重新經歷一遍計算過程。

所以由此可以看出,computed和methods 的應用場景 和 計算過程的復雜程度有關, 如果計算過程復雜龐雜,而且計算屬性會被經常調用(getter),那么最好使用緩存;如果,需要的值,計算簡單,調用不頻繁,實時性比較高(存在異步請求),會比較適合methods

computed有緩存,若相關數據未發生變化,則不調用; 
methods無緩存,需要事件才能調用它(如點擊等); 
watch多用於數據交互頻繁的內容。(例如定時axios從服務器獲取數據)。

 


免責聲明!

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



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