之前學(xué)過Vue的官方文檔棉圈,因為項目中沒有用過,很快就忘記得差不多了眷蜓,所以這次決定重新學(xué)習(xí)一下分瘾,并且記錄下自己的學(xué)習(xí)過程以及自己的想法
構(gòu)造器
每一個Vue.js應(yīng)用都是通過構(gòu)造函數(shù)Vue創(chuàng)建的一個Vue的根實例啟動的。
var data = {a: 1};
var vm = new Vue({
el: '#app', //掛載對象
data: data //代理的數(shù)據(jù)
})
屬性與方法
每一個Vue實例都會代理其data
對象里面的所以屬性吁系,注意這時代理的data
的屬性是響應(yīng)的德召。如果實例創(chuàng)建以后,添加新的屬性到實例上汽纤,它不會觸發(fā)視圖更新(后面會詳細討論)上岗。
var data = {a: 1};
var vm = new Vue({
el: '#app',
data: data
});
vm.a === data.a;//true
//修改vm的a的值會影響到原始值
vm.a = 2;
console.log(data.a); //=> 2
//反之亦然
data.a = 3;
console.log(vm.a);// => 3
除了data屬性,Vue還暴露了一些有用的實例屬性與方法蕴坪。這些方法與屬性都是以$開頭肴掷,以便于代理的data屬性區(qū)分
console.log(vm.$data === data); //true
console.log(vm.$el === document.getElementById('app')); //true
vm.$watch('a', function(newVal, oldVal){
console.log('a改變了,新值是'+ newVal +'背传,舊值是'+ oldVal);
});
vm.a = 'a'; //a的值變了呆瞻,就會觸發(fā)上面的回調(diào)函數(shù)
//a改變了,新值是a径玖,舊值是3
實例的生命周期
每一個Vue實例在被創(chuàng)建的之前都要經(jīng)過一些列的初始化的過程;
例如實例需要配備數(shù)據(jù)觀測痴脾,模板編譯,掛載實例到DOM梳星,然后數(shù)據(jù)變化到Dom,在這過程中赞赖,會調(diào)用一系列的生命周期的鉤子函數(shù),這就提供了給我們執(zhí)行自定義邏輯的機會.
生命周期圖示
盜用官方文檔的圖:
Paste_Image.png