angularjs中,為什麼要使用resolve?

Z_沿華發表於2018-04-17
ng-route模組中的when()和ui-route的state()都提供了resolve屬性。 


為什麼需要使用resolve? 

當路由切換的時候,被路由的頁面中的元素(標籤)就會立馬顯示出來,同時,資料會被準備好並呈現出來。但是注意,資料和元素並不是同步的,在沒有任何設定的情況下,AngularJS預設先呈現出元素,而後再呈現出資料。這樣就會導致頁面會被渲染兩遍,導致“頁面UI抖動”的問題,對使用者不太友好。resolve的出現解決了這個問題。 


resolve是幹嘛用的 

resolve屬性裡的值會在路由成功前被預先設定好,然後注入到控制器中。通俗地將,就是等資料都“就位”後,才進行路由(其實我覺得也不能叫路由,因為路由是一些列的操作,其中就包括了設定resolve屬性等等)。這樣的好處就是頁面僅會被渲染一遍。

相關文章