angularjs中,爲什麼要使用resolve?

ng-route模塊中的when()和ui-route的state()都提供了resolve屬性。 


爲什麼需要使用resolve? 

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


resolve是幹嘛用的 

resolve屬性裏的值會在路由成功前被預先設定好,然後注入到控制器中。通俗地將,就是等數據都“就位”後,才進行路由(其實我覺得也不能叫路由,因爲路由是一些列的操作,其中就包括了設置resolve屬性等等)。這樣的好處就是頁面僅會被渲染一遍。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章