Quelle est la différence entre une route angulaire et une route angulaire?
je prévois D'utiliser AngularJS dans mes grandes applications. Je suis donc en train de trouver les bons modules à utiliser.
Quelle est la différence entre ngRoute (angulaire de l'itinéraire.js) et ui-router (angular-ui-router.js) modules ?
dans de nombreux articles lorsque ngRoute est utilisé, la route est configurée avec $routeProvider . Cependant, lorsqu'elle est utilisée avec ui-router , la route est configurée avec $stateProvider et $urlRouterProvider .
quel module devrais-je utiliser pour une meilleure gérabilité et extensibilité?
15 réponses
ui-router est un module tiers et est très puissant. Il prend en charge tout ce que la ngRoute normale peut faire ainsi que de nombreuses fonctions supplémentaires.
Voici une raison commune pour laquelle ui-router est choisi plutôt que ngRoute:
-
ui-router permet de vues imbriquées et plusieurs vues nommées . Ceci est très utile avec l'application plus grande où vous pouvez avoir des pages qui héritent d'autres sections.
-
ui-router vous permet d'avoir des liens de type fort entre les États basés sur les noms d'États. Changer l'url dans un endroit mettra à jour chaque lien vers cet état lorsque vous construisez vos liens avec
ui-sref
. Très utile pour les grands projets où les URLs peuvent changer. -
il y a aussi le concept du décorateur qui pourrait être utilisé pour permettre à vos routes d'être dynamiquement créées sur la base de L'URL qui essaye d'être consultée. Cela pourrait signifier que vous n'aurez pas besoin de spécifier toutes vos routes avant main.
-
states vous permettent de cartographier et d'accéder à différentes informations sur différents états et vous pouvez facilement passer des informations entre les États via
$stateParams
. -
vous pouvez facilement déterminer si vous êtes dans un État ou un parent d'un État pour ajuster L'élément UI (mettant en évidence la navigation de l'état actuel) dans vos gabarits via
$state
fournis par ui-router que vous pouvez exposer via le paramétrage de$rootScope
surrun
.
en essence, ui-router est ngroter avec plus de fonctionnalités, sous les feuilles, il est tout à fait différent. Ces caractéristiques supplémentaires sont très utile pour des applications plus importantes.
Plus D'Informations:
- Github: https://github.com/angular-ui/ui-router
- Documentation:
- référence API: http://angular-ui.github.io/ui-router/site/#/api
- Guide: https://github.com/angular-ui/ui-router/wiki
- FAQ: https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions
- exemple d'application: http://angular-ui.github.io/ui-router/sample/# /
ngRoute est un module développé par L'équipe AngularJS.
ui-router est un cadre qui a été fait en dehors du projet AngularJS pour améliorer et améliorer les capacités de routage.
à Partir de l'interface utilisateur-routeur documentation :
AngularUI Router est un routeur de routage pour AngularJS, qui permettre vous organiser les parties de votre interface dans une machine d'état. Contrairement au service $ route dans le noyau angulaire, qui est organisé autour de URL routes, UI-Router est organisé autour des États, qui peuvent éventuellement des itinéraires, ainsi que d'autres comportements, ci-joint.
les États sont liés à des vues nommées, emboîtées et parallèles, vous permettant de gérez avec puissance l'interface de votre application.
aucun D'eux n'est meilleur, vous devra choisir le plus approprié pour votre projet.
cependant, si vous prévoyez d'avoir des points de vue complexes dans votre demande et que vous voulez traiter de la notion de "$state". Je vous recommande de choisir l'interface utilisateur du routeur.
ngRoute est un module central angulaire qui est bon pour les scénarios de base. Je crois qu'ils vont ajouter des fonctionnalités les plus puissantes dans les prochaines versions.
URL: https://docs.angularjs.org/api/ngRoute
Ui-router est un module contributif qui est surmonté des problèmes de ngRoute. Vues principalement imbriquées / Complexes.
URL: https://github.com/angular-ui/ui-router
une partie de la différence entre l'interface utilisateur du routeur et ngRoute
http://www.amasik.com/angularjs-ngroute-vs-ui-router /
ngRoute fait partie du noyau AngularJS framework.
ui-router est une bibliothèque communautaire qui a été créée pour tenter d'améliorer les capacités de routage par défaut.
voici un bon article sur la configuration de ui-router:
si vous voulez faire usage de la fonctionnalité de vues emboîtées mises en œuvre dans le paradigme de ngRoute, essayez angular-route-segment - il vise à étendre ngRoute plutôt que de le remplacer.
routeur ui-fonctionne généralement sur un mécanisme d'état... Il peut être compris avec un exemple facile:
disons que nous avons une grosse application d'une bibliothèque de musique (comme ..gaana ou saavan ou autre). Et au bas de la page, vous avez un lecteur de musique qui est partagé entre tous les membres de la page.
maintenant, disons que vous cliquez sur quelques chansons pour jouer. Dans ce cas, seul l'état du lecteur de musique devrait changer au lieu de recharger la totalité page. Cela peut être facilement manipulé par ui-router.
pendant que dans ngRoute nous attachons juste la vue et le contrôleur.
Angle 1.x
ng-route :
ng-route est développé par l'équipe angularJS pour le routage.
ng-route: url (Location) routing.
Ex:
$routeProvider
.when("/home", {
templateUrl : "home.html"
})
ui-route :
ui-router est develoepd par module tiers.
ui-router : état de routage basé sur la
Ex:
$stateProvider
.state('home', {
url: '/home',
templateUrl: 'home.html'
})
--> ui-router permet de vues imbriquées
-- > ui-router plus puissant que ng-route
ngRoute est un module construit par L'équipe Angular qui fournit des fonctionnalités de routage de base côté client. Ce module fournit une base assez puissante pour le routage, et peut être construit sur assez facilement pour donner la fonctionnalité de routage solide, comme illustré dans ce billet de blog (assurez - vous de lire la piste de commentaires entre Ward Bell et Ben Nadel, l'auteur-ils sont un couple de pros angulaires)
ui-router déplace le focus des routes centrées sur les url l'application "états", qui peut ou peut ne pas être reflétée dans l'url.
les principales fonctionnalités ajoutées par ui-router sont les États imbriqués et les vues nommées.
Les États imbriquésvous permettent de séparer la logique du contrôleur pour les différentes parties de l'application. Un exemple très simple de ceci serait une application avec une navigation primaire à travers le haut, une liste de navigation secondaire le long de la gauche, et le contenu sur la droite. Sans états imbriqués, un seul contrôleur devrait généralement gérer la logique d'affichage pour la navigation secondaire ainsi que le contenu. Imbriquée de routage permet de séparer ces préoccupations.
vues nommées sont une autre caractéristique supplémentaire de ui-router. Avec ngRoute, vous ne pouvez avoir qu'une seule directive ngView sur une page, alors qu'avec named views dans ui-router vous pouvez spécifier plusieurs directives ui-view, et ensuite chaque État est capable d'affecter le modèle et le contrôleur des vues de noms. Un super simple exemple de ceci serait d'avoir le contenu principal de votre application d'être le principal point de vue, et puis d'avoir une barre de pied de page qui serait distinct ui-view. Dans ce scénario, le contrôleur du pied de page n'a plus à écouter les changements d'état ou de route.
une bonne comparaison de ngRoute et ui-router peut être trouvée sur ce podcast épisode.
juste pour rendre les choses plus confuses, gardez un oeil sur le nouveau module de routage "officiel" que le Angular team s'attend à sortir pour les versions 1.5 et 2.0 D'Angular. Ce module remplacera le module ngRoute. ici est la documentation actuelle pour le nouveau module de routeur - il est assez clairsemé à partir de cet affichage puisque la mise en œuvre n'a pas encore été finalisée. Regardez ici pour plus d'informations sur la date de sortie de ce module.
ngRoute est une bibliothèque de routage de base, où vous pouvez spécifier seulement une vue et un contrôleur pour n'importe quelle route.
avec ui-router, vous pouvez spécifier plusieurs vues, à la fois parallèles et imbriquées. Donc, si votre application nécessite (ou peut nécessiter à l'avenir) n'importe quel type de routage/vues complexes, alors allez de l'avant avec ui-router.
Ce est le meilleur guide de mise en route pour AngularUI Routeur.
chose de base que vous devez savoir: ng-router utilise $location.path()
et ui-router utilise $state.go
reposez-nous tous les traits.
routeur ui rendre votre vie plus facile! Vous pouvez l'ajouter à votre application AngularJS en l'injectant dans vos applications...
ng-route
fait partie du noyau AngularJS, il est donc plus simple et vous donne moins d'options...
Regardez ici pour mieux comprendre ng-route: https://docs.angularjs.org/api/ngRoute
également en l'utilisant, n'oubliez pas d'utiliser: ngView ..
ng-ui-router est différente, mais:
https://github.com/angular-ui/ui-router mais vous donne plus d'options....
Routeur AngularUI est un cadre de routage pour AngularJS, qui vous permet d'organiser les parties de votre interface dans une machine d'état. Contrairement au service $route dans le module Ngroute angulaire, qui est organisé autour des routes URL, UI-Router est organisé autour des États, qui peuvent éventuellement avoir des routes, ainsi que d'autres comportements, attachés.
ngRoute est un module développé par L'Angular.l'équipe js qui faisait auparavant partie du noyau angulaire.
ui-routeur est un cadre qui a été fait en dehors de l'angle.js projet afin d'améliorer le routage capabalities.
1-ngRoute est développé par angular team alors que ui-router est un module tiers. 2-ngRoute implémente le routage basé sur L'URL de route tandis que ui-router implémente le routage basé sur l'état de l'application. 3-ui-router fournit tout ce que la route ng fournit plus quelques fonctionnalités supplémentaires comme les États imbriqués et les vues multiples nommées.
ng-View
(développé par L'équipe AngularJS) ne peut être utilisé qu'une seule fois par page, alors que ui-View
(module tiers) peut être utilisé plusieurs fois par page.
ui-View
est donc la meilleure option.