先分析下生命週期html
beforecreated:el 和 data 並未初始化 created:完成了 data 數據的初始化,el沒有 beforeMount:完成了 el 和 data 初始化 mounted :完成掛載
(1)mountedjquery
不少人跟我說初始化放在Mounted裏面, 我問她(他)們爲何?她(他)們回答說由於這個時候DOM初始化渲染好啦。而後我繼續問DOM初始化渲染和請求初始化數據有什麼關係?他們會說能夠顯示請求出來的數據啦。(你們以爲有衝突嗎?)函數
DOM初始化渲染和請求初始化數據並無什麼衝突
讓咱們在看看前面的Vue生命週期spa
a、beforeCreate:
(在實例初始化以後,數據觀測 (data observer) 和 event/watcher 事件配置以前被調用。---官方貼的)插件
b、beforeMount:3d
(在掛載開始以前被調用:相關的 render 函數首次被調用。---官方貼的)code
看了這個2個咱們繼續分析:server
咱們請求回來的初始化數據或者基礎數據是否是須要掛在Vue的Data上面?(是的,須要√) 而後咱們繼續beforeCreate的時候Data有沒有生成?(答案是:沒有。×) --因此這一步是沒法把數據掛到Vue的Data上面的 而後我繼續看created的時候Data有沒有生成?(答案是:生成啦。√) --因此這一步咱們是能夠把數據掛到Vue的Data上面的,是否是能夠放在這裏啦? --是的,能夠放在這裏啦。因此最後結論就是放在created裏面。
補充分析:htm
(1)mountedblog
若是把全部請求放在created裏面的話,請求過多會,加載太慢會致使頁面出現短暫的白屏狀況,通常上我寫的話,接口不復雜會放created裏面,接口多複雜的話會放在mounted裏面.
(2)mounted
created 是加載DOM,html以後 就立刻執行, 好比初始化,獲取屏幕高度調整,賦值等等,而mounted就是執行包括js以後,準備開始調用方法,也就是說 相似傳統開發那樣,先加載jquery 再調用插件
.