Por favor explique la diferencia entre $routeProvider
y $stateProvider
en AngularJS.
¿Cuál es la mejor práctica?
Por favor explique la diferencia entre $routeProvider
y $stateProvider
en 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-view
en la página$routeProvider
falla. (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 view
correos 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-router
poder es que puede administrar estados anidados y vistas.
Pros
ui-view
en 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-view
lugar de verificar si está anidado o no.ui-sref
para crear una href
URL dinámicamente sobre la base de lo URL
mencionado en un estado, también puede dar parámetros de estado en el json
formato.Para más información Angular ui-router
Para una mejor flexibilidad con varias vistas anidadas con estados, prefiero que elijas ui-router
$stateProvider
&$routeProvider
El propio ng-Router de Angular toma
URLs
en consideración durante el enrutamiento, UI-Router tomastates
ademá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 tenerstate
en 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,
state
seguirá 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