為什么不在 created 里去發ajax?created 可是比 mounted 更早調用啊,更早調用意味着更早返回結果,那樣性能不是更高?
首先,一個組件的 created 比 mounted 也早調用不了幾微秒,性能沒啥提高;
而且,等到異步渲染開啟的時候,created 就可能被中途打斷,中斷之后渲染又要重做一遍,想一想,在 created 中做ajax調用,代碼里看到只有調用一次,但是實際上可能調用 N 多次,這明顯不合適。
相反,若把發ajax 放在 mounted,因為 mounted 在第二階段,所以絕對不會多次重復調用,這才是ajax合適的位置.
在created的時候,視圖中的dom並沒有被渲染出來,所以此時如果直接去操作dom節點,無法找到相關元素。
在mounted中,由於此時的dom元素已經渲染出來了,所以可以直接使用dom節點。
一般情況下,都放在mounted中,保證邏輯的統一性。因為生命周期是同步執行的,ajax是異步執行的。
服務端渲染不支持mounted方法,所以在服務端渲染的情況下統一放在created中。