AngularJS缘何推荐用ui-router替代ngRoute

初学angularjs,第一独实例是官网的phoneCat,里面路由于用底凡ngRoute,后来看到别的用ui-router,觉得惊讶,ui-route是啊为?百度组成部分,得到如下解释:

ui-router 的工作原理非常类似于 Angular 的路由控制器,但它只关注状态。

ui-router是一个web客户端的路由解决方案,它最大的作用是将web界面的设计分块了

UI-Router被认为是AngularUI为开发者提供的最实用的一个模块,它是一个让开发者能够根据URL状态或者说是'机器状态'来组织和控制界面UI的渲染,而不是仅仅只改变路由(传统AngularJS应用实用的方式)

圈了以上解释后,懂了吗?我是没动,但类似很牛掰的师,继续研究,终于看到说不同之地方了:

 

AngularUI Router是AngularUI
团队开之一个AngularJS路由模块,相比AngularJS的业内路由ngRoute,它还灵敏,基于state而未是URL在一个页面被加载多单View并保障View的层系,Nested
States & Views以及Multiple & Named
Views。UI-Router被看是AngularUI为开发者提供的绝实用的一个模块。

和集成的ngRoute服务差的凡,UI-Router可以将视图嵌套,因为它们根据的凡操作状态而止非URL。与民俗做法用ng-view不同的是,在ngRoute里待使用ui-view服务。当于ui-router中处理路由和状态时,开发者的主体是眼下的状态是什么与当哪一个页面里。

上面说集成的ngRoute服务不同,实际上以自家眼前所以之版本中一度拿ngRoute模块独立出来了;

1、UI-Router支持嵌套视图,ngRoute不支持

动ngRoute时,在主页面添加<ng-view></ng-view>标签,会拿视图渲染好机关加载到者标签,而要想在视图里面又加一个<ng-view></ng-view>,用别的子视图渲染好来填充视图里面种的<ng-view>标签,这是匪支持的(这话说得可怜绕,就是未支持视图里面嵌套视图);而UI-Router支持此特点,ui-router使用ui-view标签,可以层层嵌套视图。

2、UI-Router支持多视图,ngRoute不支持

ngRoute的页面只能添加一个<ng-view></ng-view>标签,及时长多只,都是填写同样的情;UI-Router可以透过也ui-view命名的点子支持多单视图,如:

<ng-view="profile"></ng-view>
<ng-view="main"></ng-view>

此有对的详细分析:ui.router源码解析

末,还是如因自己之急需来:是否需要用到这些特点?ngRoute是否会满足你的要求?如果ngRoute够用了,还是采取ngRoute吧,虽然UI-Router不会增加使用难度,但是UI-Router压缩后还有30kb,而ngRoute压缩后只生5kb!

相关文章