Por favor explique la diferencia entre $routeProvidery $stateProvideren AngularJS.
¿Cuál es la mejor práctica?
Por favor explique la diferencia entre $routeProvidery $stateProvideren AngularJS.
¿Cuál es la mejor práctica?
Ambos realizan el mismo trabajo que los utilizados para fines de enrutamiento en SPA (Aplicación de página única).
URL a controladores y vistas (parciales HTML). Observa $ location.url () e intenta asignar la ruta a una definición de ruta existente.
HTML
<div ng-view></div>
La etiqueta anterior representará la plantilla a partir de la $routeProvider.when()condición que había mencionado en .config(fase de configuración) de angular
Limitaciones: -
ng-viewen la página$routeProviderfalla. (para lograr eso, tenemos que utilizar directivas como ng-include, ng-switch, ng-if, ng-show, que se ve mal tenerlos en SPA)AngularUI Router es un marco de enrutamiento para AngularJS, que le permite organizar las partes de su interfaz en una máquina de estado. UI-Router está organizado alrededor de estados, que opcionalmente pueden tener rutas, así como otros comportamientos, adjuntos.
Vistas múltiples y con nombre
Otra gran característica es la capacidad de tener múltiples vistas ui en una plantilla.
Si bien las vistas paralelas múltiples son una característica poderosa, a menudo podrá administrar sus interfaces de manera más efectiva anidando sus viewcorreos electrónicos y emparejando esas vistas con estados anidados.
HTML
<div ui-view>
<div ui-view='header'></div>
<div ui-view='content'></div>
<div ui-view='footer'></div>
</div>
La mayor parte del ui-routerpoder es que puede administrar estados anidados y vistas.
Pros
ui-viewen una sola páginaui-view="some"estado solo con el enrutamiento absoluto @con el nombre del estado.@para cambiar ui-view="some". Esto reemplazará el en ui-viewlugar de verificar si está anidado o no.ui-srefpara crear una hrefURL dinámicamente sobre la base de lo URLmencionado en un estado, también puede dar parámetros de estado en el jsonformato.Para más información Angular ui-router
Para una mejor flexibilidad con varias vistas anidadas con estados, prefiero que elijas ui-router
$stateProvider&$routeProviderEl propio ng-Router de Angular toma
URLsen consideración durante el enrutamiento, UI-Router tomastatesademás de las URL.Mientras que en ng-router, debe tener mucho cuidado con las URL al proporcionar enlaces a través de la
<a href="">etiqueta, en UI-Router solo debe tenerstateen cuenta. Usted proporciona enlaces como<a ui-sref="">. Tenga en cuenta que incluso si lo usa<a href="">en UI-Router, tal como lo haría en ng-router, seguirá funcionando.Por lo tanto, incluso si decide cambiar su URL algún día,
stateseguirá siendo la misma y deberá cambiar la URL solo en.config.Si bien ngRouter se puede usar para crear aplicaciones simples, UI-Router hace que el desarrollo sea mucho más fácil para aplicaciones complejas. Aquí es wiki.
fuente
$ route: se utiliza para vincular URLs a controladores y vistas (parciales HTML) y vigila $ location.url () para mapear la ruta desde una definición existente de ruta.
Cuando usamos ngRoute, la ruta se configura con $ routeProvider y cuando usamos ui-router, la ruta se configura con $ stateProvider y $ urlRouterProvider.
fuente