Vue.js 熱度一直在上升,項目中也使用了這個框架,記錄一下學習的過程。
摘自官方說明:“Vue.js(讀音 /vju?/,類似于view) 是一套構建用戶界面的漸進式框架姻成。與其他重量級框架不同的是,Vue 采用自底向上增量開發(fā)的設計愿棋。Vue 的核心庫只關注視圖層科展,它不僅易于上手,還便于與第三方庫或既有項目整合初斑。另一方面辛润,當與單文件組件和Vue 生態(tài)系統(tǒng)支持的庫結合使用時,Vue 也完全能夠為復雜的單頁應用程序提供驅動见秤∩笆”
官方資源:官方中文地址 |?官方英文地址 |?API文檔地址?| GitHub
環(huán)境配置、安裝還是比較簡單鹃答,直接參考:?官方教程乎澄。
一、Vue實例
通過構造函數(shù) Vue({option}) 創(chuàng)建一個 Vue 的實例:
var vm = newVue({
? // 選項
})
在實例化的時候测摔,我們可以傳入一個選項對象置济,包含數(shù)據(jù)解恰、模板、掛載元素浙于、方法护盈、生
命周期鉤子等選項。
1. 數(shù)據(jù)
類型:Object | Function
限制:組件的定義只接受function
Vue 將會遞歸將 data 的屬性轉換為 getter/setter羞酗,從而讓 data 的屬性能夠響應數(shù)據(jù)變化腐宋。
對象必須是純粹的對象 (含有零個或多個的 key/value 對):瀏覽器 API 創(chuàng)建的原生對象,原型上的屬性會被忽略檀轨。
實例創(chuàng)建之后胸竞,可以通過vm.$data訪問原始數(shù)據(jù)對象。Vue 實例也代理了 data 對象上所有的屬性参萄,因此訪問vm.a等價于訪問vm.$data.a卫枝。
以_或$開頭的屬性不會被 Vue 實例代理,因為它們可能和 Vue 內置的屬性讹挎、API 方法沖突校赤。你可以使用例如vm.$data._property的方式訪問這些屬性。
當一個組件被定義淤袜,data必須聲明為返回一個初始數(shù)據(jù)對象的函數(shù)痒谴,因為組件可能被用來創(chuàng)建多個實例衰伯。如果data仍然是一個純粹的對象铡羡,則所有的實例將共享引用同一個數(shù)據(jù)對象!通過提供data函數(shù)意鲸,每次創(chuàng)建一個新實例后烦周,我們能夠調用data函數(shù),從而返回初始數(shù)據(jù)的一個全新副本數(shù)據(jù)對象怎顾。
如果需要读慎,可以通過將vm.$data傳入JSON.parse(JSON.stringify(...))得到深拷貝的原始數(shù)據(jù)對象。
2. Vue實例的生命周期
如圖所示槐雾,原圖出自官方網站夭委。
圖中所示的都是v2.x 版本的方法,與v1.x比一些方法名稱有所變化募强。
這些方法也叫:生命周期鉤子函數(shù)株灸。