1. 程式人生 > >vue生命週期、computed屬性和 method方法、watch 屬性區別

vue生命週期、computed屬性和 method方法、watch 屬性區別

例項生命週期鉤子函式

beforeCreate    元件例項剛被建立,元件屬性計算之前,如data屬性等

created     元件例項建立完成,屬性已繫結,但DOM還未生成,$el屬性還不存在

beforeMount 模板編譯/掛載之前

mounted     模板編譯/掛載之後

beforeUpdate    元件更新之前

updated     元件更新之後

activated   for keep-alive,元件被啟用時呼叫

deactivated for keep-alive,元件被移除時呼叫

beforeDestory   元件銷燬前呼叫

destoryed   元件銷燬後呼叫

computed 屬性 這就是為什麼對於所有複雜邏輯,你都應該使用 computed 屬性

<div id="example">
  <p>初始 message 是:"{{ message }}"</p>
  <p>計算後的翻轉 message 是:"{{ reversedMessage }}"</p>
</div>

 computed: {
    // 一個 computed 屬性的 getter 函式

    reversedMessage: function () {

      // `this` 指向 vm 例項
return this.message.split('').reverse().join('') } }

computed 屬性預設只設置 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] } } }

method 方法 這裡不使用 computed 屬性,而是在 methods 中定義一個相同的函式。對於最終結果,這兩種方式確實恰好相同。

    然而,細微的差異之處在於,computed 屬性會基於它所依賴的資料進行快取。

    每個 computed 屬性,只有在它所依賴的資料發生變化時,才會重新取值(re-evaluate)。

    這就意味著,只要 message 沒有發生變化,多次訪問 computed 屬性 reversedMessage,將會立刻返回之前計算過的結果,
    而不必每次都重新執行函式。

    你可能不希望有快取,請使用 method 方法替代。

watch 屬性 Vue 其實還提供了一種更加通用的方式,來觀察和響應 Vue 例項上的資料變化:watch 屬性。watch 屬性是很吸引人的使用方式,
然而,當你有一些資料需要隨著另外一些資料變化時,過度濫用 watch 屬性會造成一些問題
- 尤其是那些具有 AngularJS 開發背景的開發人員。因此,更推薦的方式是,使用 computed 屬性,而不是命令式(imperative)的 watch 回撥函式。
- 當你需要監控某個變數,當其改變後進行某些操作,就用watch

相關推薦

vue生命週期computed屬性 method方法watch 屬性區別

例項生命週期鉤子函式 beforeCreate 元件例項剛被建立,元件屬性計算之前,如data屬性等 created 元件例項建立完成,屬性已繫結,但DOM還未生成,$el屬性還不存在 beforeMount 模板編譯/掛載之前 mount

java的知識點23——泛型GenericsCollection介面List特點常用方法 ArrayList特點底層實現

泛型Generics 一般通過“容器”來容納和管理資料。程式中的“容器”就是用來容納和管理資料。 陣列就是一種容器,可以在其中放置物件或基本型別資料。 陣列的優勢:是一種簡單的線性序列,可以快速地訪問陣列元素,效率高。如果從效率和型別檢查的角度講,陣列是最好的。 陣列的劣勢:不靈活。

資源物件的區別抽象類抽象方法過載技術介面interface

一、資源和物件的辨析 熟悉的資源:       $link = mysql_connect(“localhost”, “root”, “123”); //得到一個“連線到mysql資料庫”的資源。       $result = mysql_query(“select ..

vue生命週期及例項的屬性方法

vue的生命週期 vue例項從建立到銷燬的過程,稱為生命週期,共八個階段 window.onload=function(){ let vm = new Vue({ el:'#itany', data:{//儲存資料

Vue的過濾器,生命週期的鉤子函式使用Vue-router

一.過濾器   1.區域性過濾器 在當前元件內部使用過濾器   給某些資料 添油加醋 //宣告 filters:{ '過濾器的名字':function(val,a,b){ //a 就是alax ,val就是當前的資料 } } //使用 管道符 資料 | 過濾器的名

VueRouterVue生命週期(鉤子函式)

一、vue-router路由 1、介紹 vue-router是Vue的路由系統,用於定位資源的,在頁面不重新整理的情況下切換頁面內容。類似於a標籤,實際上在頁面上展示出來的也是a標籤,是錨點。   2、路由註冊 1. 定義一個路由匹配規則和路由對應元件的物件 let url = [

vuecomputed屬性&method方法區別

在vue中使用computed屬性和使用method方法都能達到同樣的效果;兩者的區別有兩點:1)呼叫computed屬性時,因為是例項的屬性,所以使用{{}}呼叫的時候直接{{名稱}},不用(),而使用{{}}呼叫method的時候需要{{方法名()}};2)computed比method更節省效

vue生命週期react生命週期對比

一 vue的生命週期如下圖所示(很清晰)初始化、編譯、更新、銷燬   二 vue生命週期的栗子  注意觸發vue的created事件以後,this便指向vue例項,這點很重要 <!DOCTYPE html> <html> <head> <

vue生命週期的理解一些面試題

所有的生命週期鉤子自動繫結 this 上下文到例項中,因此你可以訪問資料,對屬性和方法進行運算。這意味著 你不能使用箭頭函式來定義一個生命週期方法 (例如 created: () => this.fetchTodos())。這是因為箭頭函式綁定了父上下文,因此 this 與你期待的 V

3.computed:{...} 是vue專有的一個計算屬性 一些其它的常用屬性

computed(中文意思:計算) 是vue專有的一個計算屬性   當資料發生變化的時候,通過變化的資料,做另一件事 只要使用, 一開始就會執行一次,之後只要資料發生變化就執行   定義:   函式( ){     return 是什麼,

Vue生命週期鉤子函式的一些理解

vue生命週期簡介 咱們從上圖可以很明顯的看出現在vue2.0都包括了哪些生命週期的函數了。 生命週期探究 對於執行順序和什麼時候執行,看上面兩個圖基本有個瞭解了。下面我們將結合程式碼去看看鉤子函式的執行。 ps:下面程式碼可以直接複製出去執行 <

vue學習(二) vue生命週期 vue自定義指令過濾器

生命週期鉤子函式 vue的生命週期圖示 vue的幾個鉤子函式 直接程式碼展示: <div id="box"> {{msg}} </div> <script>

JQuery元素屬性樣式操作以及設置元素內容

ava 例如 term wid 集合 遍歷 內容 ssd each 一、JQury元素屬性操作通過JQuery可以對元素本身的屬性進行操作,包括獲取屬性的屬性值,設置屬性的屬性值,並且可以刪除屬性值(attr()和removeAttr())。二、JQuery樣式操作元素樣式

Vue生命週期中的 mounted

mounted() { }      //真實dom渲染完了,可以操作dom了 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

標註圖+部分舉例聊聊Vue生命週期

“你不需要立馬弄明白所有的東西,不過隨著你的不斷學習和使用,它的參考價值會越來越高。” 現在專案中遇到了,好好回頭總結一波Vue生命週期,以後用到的時候再來翻翻。 啥叫Vue生命週期? 每個 Vue 例項在被建立時都要經過一系列的初始化過程。 例如:從開始建立、初始化資料、編譯模板、掛載Dom、資料變化

vue生命週期,鉤子函式

vue生命週期簡介和鉤子函式 一、vue生命週期簡介 咱們從上圖可以很明顯的看出現在vue2.0都包括了哪些生命週期的函數了,總結一下,對官方文件的那張圖簡化一下,就得到了這張圖。 二、生命週期探究 對於執行順序和什麼時候執行,看上面圖基本有個瞭解了。下面我們將結

Vue生命週期函式詳解

 vue例項的生命週期 1 什麼是生命週期(每個例項的一輩子) 概念:每一個Vue例項建立、執行、銷燬的過程,就是生命週期;在例項的生命週期中,總是伴隨著各種事件,這些事件就是生命週期函式; 生命週期:例項的生命週期,就是一個階段,從建立到執行,再到銷燬的階段; 生命週期函式:在例項的生命週

vue 生命週期~~

  4個階段:             1. 建立(create)階段:建立元件物件,和模型資料物件       &nb

vue 生命週期梳理

前言 在使用vue開發過程中經常會接觸到生命週期的問題,但對於每個鉤子函式都做了什麼,應用場景比較模糊,希望通過這次梳理讓自己清楚一些。初次寫文章,有不對的地方還望各位多多指正! 1. vue例項化過程 從vue例項化開始分析,我們通過new Vue來例項化來檢視一下原始碼 在 src/core/ins

淺談vue生命週期

在談到Vue的生命週期的時候,我們首先需要建立一個例項,也就是在 new Vue ( ) 的物件過程當中,首先執行了init(init是vue元件裡面預設去執行的),在init的過程當中首先呼叫了beforeCreate,然後在injections(注射)和reactivity(反應性)的時候,它會