鍍金池/ 教程/ HTML/ Vue 實例
自定義過濾器
自定義指令
概述
安裝
起步
深入響應(yīng)式原理
Class 與 Style 綁定
混合
列表渲染
方法與事件處理器
表單控件綁定
對比其它框架
組件
計算屬性
插件
數(shù)據(jù)綁定語法
構(gòu)建大型應(yīng)用
條件渲染
Vue 實例
過渡

Vue 實例

構(gòu)造器

每個 Vue.js 應(yīng)用的起步都是通過構(gòu)造函數(shù) Vue 創(chuàng)建一個 Vue 的根實例

var vm = new Vue({
  // 選項
})

一個 Vue 實例其實正是一個 MVVM 模式中所描述的 ViewModel - 因此在文檔中經(jīng)常會使用 vm 這個變量名。

在實例化 Vue 時,需要傳入一個選項對象,它可以包含數(shù)據(jù)、模板、掛載元素、方法、生命周期鉤子等選項。全部的選項可以在 API 文檔中查看。

可以擴展 Vue 構(gòu)造器,從而用預(yù)定義選項創(chuàng)建可復(fù)用的組件構(gòu)造器

var MyComponent = Vue.extend({
  // 擴展選項
})

// 所有的 `MyComponent` 實例都將以預(yù)定義的擴展選項被創(chuàng)建
var myComponentInstance = new MyComponent()

盡管可以命令式地創(chuàng)建擴展實例,不過在多數(shù)情況下將組件構(gòu)造器注冊為一個自定義元素,然后聲明式地用在模板中。我們將在后面詳細(xì)說明組件系統(tǒng)?,F(xiàn)在你只需知道所有的 Vue.js 組件其實都是被擴展的 Vue 實例。

屬性與方法

每個 Vue 實例都會代理data 對象里所有的屬性:

var data = { a: 1 }
var vm = new Vue({
  data: data
})

vm.a === data.a // -> true

// 設(shè)置屬性也會影響到原始數(shù)據(jù)
vm.a = 2
data.a // -> 2

// ... 反之亦然
data.a = 3
vm.a // -> 3

注意只有這些被代理的屬性是響應(yīng)的。如果在實例創(chuàng)建之后添加新的屬性到實例上,它不會觸發(fā)視圖更新。我們將在后面詳細(xì)討論響應(yīng)系統(tǒng)。

除了這些數(shù)據(jù)屬性,Vue 實例暴露了一些有用的實例屬性與方法。這些屬性與方法都有前綴 $,以便與代理的數(shù)據(jù)屬性區(qū)分。例如:

var data = { a: 1 }
var vm = new Vue({
  el: '#example',
  data: data
})

vm.$data === data // -> true
vm.$el === document.getElementById('example') // -> true

// $watch 是一個實例方法
vm.$watch('a', function (newVal, oldVal) {
  // 這個回調(diào)將在 `vm.a`  改變后調(diào)用
})

參考 API 文檔查看全部的實例屬性與方法。

實例生命周期

Vue 實例在創(chuàng)建時有一系列初始化步驟——例如,它需要建立數(shù)據(jù)觀察,編譯模板,創(chuàng)建必要的數(shù)據(jù)綁定。在此過程中,它也將調(diào)用一些生命周期鉤子,給自定義邏輯提供運行機會。例如 created 鉤子在實例創(chuàng)建后調(diào)用:

var vm = new Vue({
  data: {
    a: 1
  },
  created: function () {
    // `this` 指向 vm 實例
    console.log('a is: ' + this.a)
  }
})
// -> "a is: 1"

也有一些其它的鉤子,在實例生命周期的不同階段調(diào)用,如 compiled、 ready 、destroyed。鉤子的 this 指向調(diào)用它的 Vue 實例。一些用戶可能會問 Vue.js 是否有“控制器”的概念?答案是,沒有。組件的自定義邏輯可以分割在這些鉤子中。

生命周期圖示

下圖說明了實例的生命周期。你不需要立馬弄明白所有的東西,不過以后它會有幫助。

http://wiki.jikexueyuan.com/project/vue-js-1.0/images/lifecycle.png" alt="Lifecycle" />

上一篇:深入響應(yīng)式原理下一篇:安裝