详解角路由ng-route和ui-router的区别

  


  

  

路由是AngularJS构建单页面应用的基础。

  

路由,就是网络数据或者请求进行分发的一个网络组件。
  

  

路由就是一个用于请求URL分发和跳转的一个应用组件,角中通过美元routeProvider路由服务提供者进行核心的配置处理。

  


  

  

ng路由是AngularJS官方提供的一种简单的路由操作。
  

  

ng路由主要分三个组成部分:路由指令,路由服务,路由服务提供者

  

<>强路由指令:ng-view
  

  

ngView指令主要用于将路由指向的页面渲染到当前页面的布局中。

  

语法:
  

        & lt; ng-view [onload="字符串"][自动滚动]=白址弊4? lt;/ng-view>      
      <李> onload:当视图发生改变时执行属性值中的表达式李   <李>自动滚动:当视图发生改变时自动触发美元anchorScroll事件   
  

事件:
  

  

路由视图一旦加载时,就会自动触发美元viewContentLoaded事件

  

路由提供者:$ routeProvider
  

  

描述:
  

  

内置服务对象内置服务对象routeProvider routeProvider美元美元routeProvider主要用于进行路由配置主要用于进行路由配置
  该服务的使用必须依赖该服务的使用必须依赖该服务的使用必须依赖ngRoute模块,也就是项目中必须添加模块,也就是项目中必须添加animate-route.js

  

主要方法:
  

        当(道路、路线);用于在访问路径路径时,跳转到路线指定的视图   |——路径:路由跳转的径   |——路线:路由对象& lt;组件对象祝辞,一个JSON对象   否则(params);用于在访问不存的路径时,跳转的默认路径或者视图   | - params:指定路径或者路由对象      

内置服务& lt;路由服务祝辞:路线和美元routeParams
  

  

美元路线服务被用于进行深层超链接信息的描述,它会监听它会监听location.url美元()地址并进行url地址和指定的路由视图之间映射关系。
  

  

美元routeParams服务允许开发人员可以进行路由中参数的处理。

  


  

  

角官方提供的ng路由已经具备了非常强大的功能,但是在某些情况下存在一些不太好用的地方,项目中如果出现大量路由深层嵌套话官方的ng路由来处理就不是非常适合了。

  

第三方提供了一种强大的路由处理功能,对于路由嵌套也可以非常简单的进行处理。

  

<强> ui-route: ui路,由第三方路由
  

  

ui路由,主要的功能是项目中的路由操作,和官方的ng路由相比较,它的处理方式更加简洁和易用,尤其是涉及到项目中大量路由嵌套时,使用ui路由能更加快捷方便的完成项目中路由的跳转处理。

  

<强>用户界面视图:指令
  

  

ui视图是ui路由中模板页面用于数据展示的指令,可以作为标签的属性出现,同样也可以作为标签的属性出现
  

        & lt; div ui -viewviewviewview> & lt;/div>比;   & lt; ui -view> & lt;/uiview>   之前      

同时可以给ui视图指令命的名,用于在路由跳转时对应名称的ui视图上展示对应的数据

  


  

  

①ng路由实现不了多页面应用
  

  

②ui路由:更加方便地处理路由嵌套,在国家()函数中进行即可。
  

  

③ngRoute和ui-route相比:

  

,,当美元→state 美元;,,,,路由状态配置的时候,,,,,,,,,,

  

,,美元routeParams→stateParams 美元;,,带参数的时候的配置

  

,,美元routeProvider→stateProvider 美元;,,依赖注入的模块

  

,,& lt; div ng-view> & lt;/div>,→,& lt; div ui-view> & lt;/div>,,页面中绑定的指令
  

  

④uiRoute中可以嵌套更深层次的路由,也就是路由中可以有路由(大致有两种情况:1。横向的2。纵向的)。
  

  

(1)嵌套路由
  

  

(2)多视图路由
  

  

ngRoute中就不能嵌套更深的路由。

  

<强>用代码看一下两者的区别:
  

  

ng路由:首先要配置注册ngRoute 
  

  

代码如下:
  

        应用var=角。模块(“myApp”, [' ngRoute ']);   app.config ([“routeProvider美元”,函数(routeProvider美元){   }));   

详解角路由ng-route和ui-router的区别