vue生命週期
生命週期:指Vue實例創建,運行到銷燬期間,總是伴隨着各種各樣的事件,這些事件統稱爲生命週期。
生命週期鉤子:生命週期事件(函數)。
主要分類:
創建期間的生命週期函數:
-
beforeCreate:實例剛在內存中被創建出來,此時,還沒有初始化好data和methods屬性。
-
created:實例已經在內存中創建,此時data和methods已經創建,此時還沒有開始編譯模板。
-
beforeMount:此時已經完成了模板的翻譯,但是還沒有掛載到頁面中。
-
mounted:此時已經將編譯好的模板,掛載到了頁面的容器中顯示。
運行期間的生命週期函數:
-
beforeUpdate:狀態更新之前執行此函數,此時data中的狀態是最新的,但是界面上顯示的數據還是舊的,因爲此時還沒有開始重新渲染Dom節點。
-
updated:實力更新之前執行此函數,此時date
中的狀態值是最新的,但是界面上顯示的數據還是舊的,因爲此時還沒有開始重新渲染Dom節點。
銷燬期間的生命週期函數:
-
beforeDestroy:實例銷燬之前調用,在這一步,實例完全可用。
-
destroyed:Vue實例銷燬之後調用。調用後,Vue實例知識的所有東西都會解綁定。所有的事件監聽都會被移除,所有的子實例也會被銷燬。
vue-resource 實現 get,post,json請求
全局Vue
Vue.http.get('/someUrl',[options]).then(successCallback,errorCallback);
Vue.http.post('/someUrl',[body],[options]).then(successCallback,errorCallback);
Vue.jsonp('http://......').then( data => {
console.log(data);
})
Vue實例中
this.$http.get('/someUrl',[options]).then(successCallback,errorCallback);
this.$http.post('/someUrl',[options]).then(successCallback,errorCallback);
this.$jsonp('http://......').then( data => {
console.log(data);
})
[options]爲可選參數,通過then獲取服務器返回數據,successCallback爲訪問成功回調函數,必須設置。、
post第三個參數最好設置爲{emulateJSON:true}設置的內容爲普通表單數據格式。(emulateJSON可全局配置)
實例
this.$http.get("http://127.0.0.1:3000/del?n="+i).then(function(result){
console.log(result.body);
})
JSONP的實現原理,由於瀏覽器的安全性限制,不允許ajax訪問協議不同,端口不同數據接口。
可以通過動態創建script標籤的形式,把script標籤的src屬性,指向數據接口的地址,因爲script標籤不存在跨域限制,這種數據獲取方式,稱作JSONP
全局配置接口根域名
實例:
全局:
Vue.http.options.root = "http://127.0.0.1:3000/"
this.$http.get("data").then(function(result){
console.log(result.body);
})
私有:
new Vue({
http:{
root:"http://127.0.0.1:3000/"
}
})
設置根域名後url地址要使用相對路徑(前面不加“/”)