全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

什么是路由?

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

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

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

ng路由

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

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

路由指令:ng-view

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

语法:

<ng-view [onload=”string”] [autoscroll]=”string”></ng-view>
  1. onload:当视图发生改变时执行属性值中的表达式
  2. autoscroll:当视图发生改变时自动触发$anchorScroll事件

事件:

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

路由提供者:$routeProvider

描述:

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

主要方法:

when( path, route); 用于在访问 path 路径时,跳转到 route 指定的视图
  |-- path:路由跳转的径
  |-- route:路由对象 <组件 对象 >,一个 JSON对象
 otherwise(params);用于在访问不存的路径时,跳转的默认路径或者视图
  |-- params:指定路径或者路由对象

内置服务<路由服务>:$route &$routeParams

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

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

ui路由

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

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

ui-route:ui路由,第三方路由

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

ui-view:指令

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

<div ui -viewviewviewview></div>>
<ui -view></uiview>

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

总结:两者区别

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

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

③ngRoute 和 ui-route 相比:

   $when —> $state      路由状态配置的时候          

   $routeParams —> $stateParams    带参数的时候的配置

   $routeProvider —> $stateProvider    依赖注入的模块

   <div ng-view></div>  —>  <div ui-view></div>   页面中绑定的指令

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

  (1)嵌套路由

  (2)多视图路由

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

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

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

代码如下:

 var app = angular.module(“myApp", ['ngRoute']);        
 app.config(["$routeProvider",function($routeProvider){ 
}]); 

ui路由:用hello world举例子:

<!DOCTYPE html> 
<html ng-app="myApp"> 
  <head> 
    <meta charset="UTF-8"> 
    <title>ui-route</title> 
    <script src="js/lib/angular.min.js" ></script> 
    <script src="js/lib/angular-ui-router.min.js"></script> 
  </head> 
  <style type="text/css"> 
    .active{ 
      color:red; 
      font-weight:bold; 
    } 
  </style> 
  <body> 
    <ul> 
      <li><a ui-sref="hello" ui-sref-active='active'>Hello</a></li> 
      <li><a ui-sref="world" ui-sref-active='active'>world</a></li> 
    </ul> 
    <div> 
      <ui-view></ui-view> 
    </div>   
  </body> 
  <script> 
    var app=angular.module("myApp",["ui.router"]); 
    /* 
     $stateProvider: Ui路由中的状态服务提供者 
    */ 
    app.config(["$stateProvider","$urlRouterProvider",function($stateProvider,$urlRouterProvider){ 
      $urlRouterProvider.otherwise("/hello"); 
       
      $stateProvider.state({ 
        name:"hello", 
        url:"/hello", 
        template:"<h1>这是hello对应的内容</h1>" 
      }).state({ 
        name:"world", 
        url:"/world", 
        template:"<h1>这是world跳转之后对应的内容</h1>" 
      }); 
    }]); 
 
  </script> 
</html> 

效果如下:

这是简单的一个单页面跳转,有兴趣可以思考一下多页面应用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# angular  # ng  # router  # ui  # ng-route和ui-router的区别  # 对angular4子路由&辅助路由详解  # Angular2之二级路由详解  # 详解Angular路由之路由守卫  # Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)  # 详解Angular5路由传值方式及其相关问题  # 详解AngularJS1.6版本中ui-router路由中/#!/的解决方法  # angular2中router路由跳转navigate的使用与刷新页面问题详解  # Angular 4.x 路由快速入门学习  # 详解Angular路由之子路由  # 跳转  # 这是  # 主要用于  # 第三方  # 它会  # 多页  # 就会  # 尤其是  # 不太  # 就不  # 有兴趣  # 看一下  # 有两种  # 涉及到  # 好用  # 易用  # 中就  # 绑定  # 开发人员  # 组成部分 


相关文章: 建站之星备案流程有哪些注意事项?  已有域名如何免费搭建网站?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  Java解压缩zip - 解压缩多个文件或文件夹实例  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  建站之星如何优化SEO以实现高效排名?  建站之星如何助力企业快速打造五合一网站?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  建站VPS配置与SEO优化指南:关键词排名提升策略  音乐网站服务器如何优化API响应速度?  公司门户网站制作流程,华为官网怎么做?  如何彻底删除建站之星生成的Banner?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  如何在阿里云通过域名搭建网站?  大连 网站制作,大连天途有线官网?  如何用景安虚拟主机手机版绑定域名建站?  如何快速生成高效建站系统源代码?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  常州企业网站制作公司,全国继续教育网怎么登录?  教学网站制作软件,学习*后期制作的网站有哪些?  如何通过智能用户系统一键生成高效建站方案?  已有域名和空间如何搭建网站?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  b2c电商网站制作流程,b2c水平综合的电商平台?  建站主机如何选?性能与价格怎样平衡?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  ui设计制作网站有哪些,手机UI设计网址吗?  如何在宝塔面板创建新站点?  家庭服务器如何搭建个人网站?  网站制作新手教程,新手建设一个网站需要注意些什么?  SQL查询语句优化的实用方法总结  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  网站制作费用多少钱,一个网站的运营,需要哪些费用?  西安大型网站制作公司,西安招聘网站最好的是哪个?  如何设计高效校园网站?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  如何在橙子建站中快速调整背景颜色?  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  如何用狗爹虚拟主机快速搭建网站?  如何在阿里云高效完成企业建站全流程?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  制作证书网站有哪些,全国城建培训中心证书查询官网?  如何快速查询域名建站关键信息? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。