生命周期:
beforeCreate:el 和 data 並未初始化 (此方法不常用)
created:完成了 data 數據的初始化,el的初始化未完成。用來發送ajaxbeforeMount:(執行此方法時已經完成了 el 和 data 初始化 (已經賦予了對應的值))
渲染DOM之前先確認下是否有要編譯的根元素(有無el屬性),有才繼續確認是否具有模板屬性template,如果有模版屬性,則會用template的值替換掉HTML中的結構,template模版中只能有一個根元素(而且不能是文本);
mounted:(執行此方法時代表已經掛載結束了)
把編譯好的數據掛載到DOM元素上,最后渲染成真實的DOM元素;真實DOM已經渲染完成,可以操作DOM了beforeUpdate:當頁面依賴的數據更改之后觸發(此時DOM結構還沒有重新加載)
updated:DOM結構重新加載之后觸發調用vm.$destroy()之后觸發下面兩個事件:
beforeDestroy:實例銷毀之前調用。在這一步,實例仍然完全可用。(可在此處清除定時器,清除事件綁定)
destroyed:Vue 實例銷毀后調用。調用后,Vue 實例指示的所有東西都會解綁定,所有的事件監聽器會被移除,所有的子實例也會被銷毀。(意義不大)
獲取數據
vue中給我們提供了一個created函數,在實例創建完成后會被立即調用。方法中的this指向的也是vue的實例
let vm=new Vue({
el:'#app',
created(){
//實例創建完成后會立即執行created方法
this->vm這個實例
},
data:{
msg:''
}
});
Promise詳解與axios的使用
promise:解決回調問題,存在三個狀態(成功、失敗、等待)
Promise是一個類,new Promise時可傳遞一個函數,在new 的時候就調用傳遞進來的函數,而且會給函數默認傳遞兩個參數(都是函數數據類型的)
- 第一個參數為成功后要執行的方法
- 第二個參數為失敗后要執行的方法
Promise的實例都有一個then方法:then方法中有兩個參數(成功執行的函數,失敗執行的函數)
let a=new Promise((resolve,reject)=>{ let a=1,b=3; if(a<b){ //條件滿足時我們讓resolve執行並傳入需要的參數 resolve('條件滿足'); //resolve執行時then方法中的第一個參數(函數)就會執行 }else{ //條件不滿足時我們讓reject執行 reject('條件不滿足'); //reject執行時,then方法中的第二個參數(函數)就會執行 } }) a.then((res)=>{ //我們在promise中規定什么時候執行resolve,此方法就什么時候執行,res為執行resolve時傳遞的參數 console.log(res);//條件滿足 },(err)=>{ //我們在promise中規定什么時候執行reject,此方法就什么時候執行,err為執行reject時傳遞的參數 console.log(err); })
axios就是基於Promise進行封裝的:使用方法如下
先引入axios:
<script src="axios.js"></script> <script> //使用axios:axios調用get方法后會返回Promise的一個實例,可以直接用then方法 axios.get('json/1.json').then((res)=>{ //axios成功后會執行的方法中的傳遞的參數為一個對象,如果要獲取到需要的數據,需要用res.data; console.log(res.data); },(err)=>{ console.log(err); }) </script>
