Veuillez expliquer la différence entre $routeProvider
et $stateProvider
dans AngularJS.
Quelle est la meilleure pratique?
Veuillez expliquer la différence entre $routeProvider
et $stateProvider
dans AngularJS.
Quelle est la meilleure pratique?
Les deux font le même travail car ils sont utilisés à des fins de routage dans SPA (Single Page Application).
URL vers les contrôleurs et les vues (partiels HTML). Il regarde $ location.url () et essaie de mapper le chemin vers une définition d'itinéraire existante.
HTML
<div ng-view></div>
La balise ci-dessus rendra le modèle à partir de la $routeProvider.when()
condition que vous aviez mentionnée dans .config
(phase de configuration) de angular
Limites:-
ng-view
page$routeProvider
échoue. (pour y parvenir, nous avons besoin d'utiliser des directives comme ng-include
, ng-switch
, ng-if
, ng-show
, ce qui semble mal à les avoir en SPA)AngularUI Router est un framework de routage pour AngularJS, qui vous permet d'organiser les parties de votre interface dans une machine à états. UI-Router est organisé autour d'états, qui peuvent éventuellement avoir des routes, ainsi que d'autres comportements, attachés.
Vues multiples et nommées
Une autre fonctionnalité intéressante est la possibilité d'avoir plusieurs vues d'interface utilisateur dans un modèle.
Bien que plusieurs vues parallèles soient une fonctionnalité puissante, vous pourrez souvent gérer vos interfaces plus efficacement en imbriquant vos view
s et en associant ces vues à des états imbriqués.
HTML
<div ui-view>
<div ui-view='header'></div>
<div ui-view='content'></div>
<div ui-view='footer'></div>
</div>
La majorité de son ui-router
pouvoir est de gérer des états et des vues imbriqués.
Avantages
ui-view
sur une seule pageui-view="some"
état de simplement en utilisant le routage absolu en utilisant @
with state name.@
pour changer ui-view="some"
. Cela remplacera le ui-view
plutôt que de vérifier s'il est imbriqué ou non.ui-sref
pour créer une href
URL dynamiquement sur la base de URL
mentionné dans un état, vous pouvez également donner des paramètres d'état dans le json
format.Pour plus d'informations ui-router angulaire
Pour une meilleure flexibilité avec diverses vues imbriquées avec des états, je préférerais que vous optiez pour ui-router
$stateProvider
&$routeProvider
Le propre ng-Router d'Angular prend
URLs
en compte lors du routage, UI-Router prendstates
en plus les URL.Dans ng-router, vous devez faire très attention aux URL lorsque vous fournissez des liens via une
<a href="">
balise, dans UI-Router, vous devez seulement garderstate
à l'esprit. Vous fournissez des liens comme<a ui-sref="">
. Notez que même si vous utilisez<a href="">
dans UI-Router, tout comme vous le feriez dans ng-router, cela fonctionnera toujours.Ainsi, même si vous décidez de changer votre URL un jour, votre
state
restera le même et vous n'aurez besoin de changer d'URL qu'à partir de.config
.Alors que ngRouter peut être utilisé pour créer des applications simples, UI-Router facilite le développement d'applications complexes. Voici son wiki.
la source
$ route: Ceci est utilisé pour les URL de liens profonds vers les contrôleurs et les vues (partiels HTML) et regarde $ location.url () afin de mapper le chemin à partir d'une définition existante de route.
Lorsque nous utilisons ngRoute, la route est configurée avec $ routeProvider et lorsque nous utilisons ui-router, la route est configurée avec $ stateProvider et $ urlRouterProvider.
la source