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

Ionic调试三明治架构:Chrome DevTools与Safari真机协同排障指南 Ionic作为混合开发框架,其本质是Native容器、WebView渲染层与前端框架(Angular/React/Vue)深度耦合的‘三明治架构’。理解该架构的分层原理,是高效定位Hybrid应用异常的前提——问题常不在JS逻辑本身,而在于Capacitor桥接时机、WKWebView与Chromium内核的行为差异,或Zone.js对变更检测的劫持机制。技术价值在于建立可复用的跨层诊断路径:用Chrome DevTools Protocol观测Android WebView底层网络与内存状态,借Safar 阅读详情


什么是路由?

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


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

ng路由

ng 路由是 AngularJS 官方提供的一种简单的路由操作。 
ng 路由主要分三个组成部分:路由指令、路由服务、路由服务提供者 


路由指令:ng-view

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

语法:
<ng-view [onload=”string”] [autoscroll]=”string”></ng-view>
onload:当视图发生改变时执行属性值中的表达式
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 
 代码如下:
[html]  view plain  copy
 print ?
  1.   var app = angular.module(“myApp", ['ngRoute']);                
  2.   app.config(["$routeProvider",function($routeProvider){  
  3. }]);  

ui路由:
用hello world举例子:
[html]  view plain  copy
 print ?
  1. <!DOCTYPE html>  
  2. <html ng-app="myApp">  
  3.     <head>  
  4.         <meta charset="UTF-8">  
  5.         <title>ui-route</title>  
  6.         <script src="js/lib/angular.min.js" ></script>  
  7.         <script src="js/lib/angular-ui-router.min.js"></script>  
  8.     </head>  
  9.     <style type="text/css">  
  10.         .active{  
  11.             color:red;  
  12.             font-weight:bold;  
  13.         }  
  14.     </style>  
  15.     <body>  
  16.         <ul>  
  17.             <li><a ui-sref="hello" ui-sref-active='active'>Hello</a></li>  
  18.             <li><a ui-sref="world" ui-sref-active='active'>world</a></li>  
  19.         </ul>  
  20.         <div>  
  21.             <ui-view></ui-view>  
  22.         </div>     
  23.     </body>  
  24.     <script>  
  25.         var app=angular.module("myApp",["ui.router"]);  
  26.         /*  
  27.           $stateProvider: Ui路由中的状态服务提供者  
  28.         */  
  29.         app.config(["$stateProvider","$urlRouterProvider",function($stateProvider,$urlRouterProvider){  
  30.             $urlRouterProvider.otherwise("/hello");  
  31.               
  32.             $stateProvider.state({  
  33.                 name:"hello",  
  34.                 url:"/hello",  
  35.                 template:"<h1>这是hello对应的内容</h1>"  
  36.             }).state({  
  37.                 name:"world",  
  38.                 url:"/world",  
  39.                 template:"<h1>这是world跳转之后对应的内容</h1>"  
  40.             });  
  41.         }]);  
  42.   
  43.     </script>  
  44. </html>  

效果如下:




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

KiCad 7.0 + 嘉立创打样:从原理图到实物,打造你的双LLCC68 LoRa串口透传板 本文详细介绍了使用KiCad 7.0设计双LLCC68 LoRa串口透传板的完整流程,从原理图设计到嘉立创打样。重点解析了AVR+LLCC68组合的优势、双模块布局的电磁兼容设计、SPI接口配置及射频走线技巧,并提供了实测数据和常见问题解决方案,帮助开发者高效实现物联网设备的低功耗远距离通信。 阅读详情

相关推荐

Linux 之 supervisor安装和使用

运行Supervisor的后台服务,它用来启动和管理那些你需要Supervisor管理的子进程,响应客户端发来的请求,重启意外退出的子进程,将子进程的stdout和stderr写入日志,响应事件等。它是Supervisor最核心的部分。

chang995196962的博客 5545

理解AngularJS指令 -- ng-view

理解AngularJS指令 – ng-view 在本文中我们将探索ng-view指令内部的实现方式,并且创建一个“ngMultiView”指令, 从AngularJS 1.2开始,ngView指令以及$route service 都被移动到了一个单独的ngRoute模块中。于是,如果你需要使用ngView和route的话,必须显式的声明这个模块作为依赖。另外,otherwise语法也和

pdw2009的专栏 4万+

SAP MM 物料描述MAKTX 40个字符不够用的问题处理

SAP物料描述表,长度40个字符一般情况下,40个字符在描述中也够用了,但是要加上规格之类的额外描述就不一定了,特别是对于辅助件-刀具。解决方案一:对maktx增强,换成CHAR80或者CHAR100的,但是风险较大,涉及到好多地方,另外SAP+ 算号器 也不支持。解决方案二:增强字段。内部顾问,建议在 那就在这里加一个字段,具体过程如下:1、创建域2、创建架构3、附加架构4、GUI 设置 5、后台设置6、MASS/MM17字段新增。过程1、创建域 SE112、创建结构 se11 3、MARA附加架构

GAVIN 4729

AngularJs 路由

router路由 router路由是angularJs用于构建单页面应用的模块 本质是从a标签点击跳转功能延展而来的 (1)router功能的实现需要引入,angular.route.min.js (2)router功能的实现需要以来ng-view指令 1、提供标注,显示不同页面容器的作用 (3)router功能的实现需要a标签的href属性 1、href='#要加载的页面代号...

weixin_43294560的博客 667

liquibase介绍

1、Liquibase还是Flyway Flyway和Liquibase都支持专业数据库重构和版本控制所需的所有功能,因此您将始终知道要处理的数据库模式的版本以及它是否与软件版本匹配。两种工具都集成在Maven或Gradle构建脚本中以及Spring Boot生态系统中,因此您可以完全自动化数据库重构。 Flyway使用SQL定义数据库更改,因此您可以定制SQL脚本,使其与基础数据库技术(例如Oracle或PostgreSQL)良好地配合使用。另一方面,使用Liquibase,您可以通过使用XML,YA

赶路人儿 7534

科研问答:医药类本科生(临床、中医、中药与护理)本科阶段是否需要开展科研学习?

医药类本科生(临床、中医、中药与护理)本科阶段是否需要开展科研学习?

MD Code 1508

【原创】ui.router源码解析

Angular系列文章之angular路由 路由(route),几乎所有的MVC(VM)框架都应该具有的特性,因为它是前端构建单页面应用(SPA)必不可少的组成部分。 那么,对于angular而言,它自然也有内置的路由模块:叫做ngRoute。 不过,大家很少用它,因为它的功能太有限,往往不能满足开发需求!! 于是,一个基于ngRoute开发的第三方路由模块,叫做ui.router,受到了大...

weixin_30247159的博客 521

基于Playwright与反反爬技术的BOSS直聘数据爬取实战

本文将详细介绍如何使用Python最新技术栈(Playwright+Asyncio)构建一个高效、稳定的BOSS直聘数据爬虫系统。文章包含完整的技术选型分析、反爬机制破解方案、分布式爬虫架构设计以及数据处理存储方案,提供可直接运行的代码示例,并探讨爬虫开发中的法律与伦理问题。

2201_76125261的博客 1466

angularJS学习小结——ngRoute(路由机制)

引言    在我们介绍路由之前我们首先谈一下SPA,所以SPA就是我们现在经常说的单页应用single page APP,为了实现 无刷新的视图切换我们之前的做法就是利用AJAX从后取出数据然后渲染在前台页面HTML中,但是AJAX有一个致命的缺 点就是不能实现浏览器的后退按钮失效,为了解决这个问题我们通常使用hash,监听hashchange

Jack 架构师之路 1万+

再相逢【知识图谱】中文医学知识图谱CMeKG,中文产科医学知识图谱COKG | 附:图数据库Neo4j下载安装教学(遇到问题并解决) + Neo4j基本操作

本篇文章介绍知识图谱的相关知识。从便于理解的角度切入,给出知识图谱的形象化定义,并介绍了国内的中文医学知识图谱CMeKG,还以用户视角体验了中文产科医学知识图谱。目录二介绍了如何部署安装Neo4j数据库,并解决了部署过程中遇到的一些基础错误,随后介绍了Neo4j图数据库的基础操作。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 2615

816华为OD机试真题 新系统 - 电池充电时间计算 (Java/Py/C/C++/Js/Go)

816华为OD机试真题 新系统 - 电池充电时间计算 (Java/Py/C/C++/Js/Go)

算法大师! 472

angularJS 视图view

AngularJS支持通过在单个页面上的多个视图的单页应用。要做到这一点AngularJS提供ng-view 和 ng-template指令,以及 $routeProvider 服务。 ng-view 开启视图,只是一个占位符,没有值 例:<div ng-view></div> ng-template 创建视图,通过script标签,类型为ng-template...

weixin_30713953的博客 338

uniapp [全端兼容] - 实现省市区选择器三四级联动组件,uniapp选择地址自定义省市区三级联动插件,弹框式多级联动选择器区域选择(全平台兼容苹果安卓App、支付宝微信小程序、移动端H5网页)

uni-app省市区选择器,省市区街道三级四级联动选择器,uniapp自定义多列选择器省市两级联动,uniapp picker组件实现多级联动,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,uniApp选择器省市区县街道乡镇,uniapp实现省市区选择联动,uniapp城市三级联动(自定义组件)_uniapp三级联动,picker插件省市区联动,uniapp小程序省市区选择器,uni-app 省市区街道的四级联动选择,uniapp怎样实现省市区地址三级联动uni

🏆 前端领域优质创作者 1万+

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

什么是路由? 路由是AngularJS构建单页面应用的基础。 路由,就是网络数据或者请求进行分发的一个网络组件。 路由就是一个用于请求URL分发和跳转的一个应用组件,Angular中通过$routeProvider路由服务提供者进行核心的配置处理。 ng路由 ng 路由是 AngularJS 官方提供的一种简单的路由操作。  ng 路由主要分三个组成部分:路由指令、路由

Drenched的博客 7898

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

angularJs 中 ng-route与ui-router路由的区别

小编昨天晚上翻到之前做得笔记,今天就跟大家闲谈下ng-route与ui-router的区别 angular的路由有两种,在angular最先出来的ngRoute的时候,后续又有了uiRoute ng-Route  和  ui-route区别: $when ****************  $state         路由状态配置的区别            $routePara

Olivia_Yu_的博客 1924

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

vue-router 路由与 angular-route

一些相同的地方和不一样的地方,更好的理解两个路由! 在angular-route: *$rootScope 注册的根作用域,所有的控制器都可以用。 问题1:angualr-routel 里点击对应的路由路径会执行两次,为什么? app.controller("postNewsController",function ($scope,$rootScope) { ...

dengxian3262的博客 319

angular中ng-route和ng-ui-router的差异($http)

ngroute和ui-router并不是两个相互独立的部分,ui-router是社区库提供的用来提高ngroute的功能的,可用于多视图(嵌套),功能十分强大! 为了全面的了解两者的不同点,在这里我就加上$http请求时对两者进行比较, 1.引入文件: ngroute:<script src="angular-route.js"></script> u...

aiqiya2917的博客 202

Angular学习-ng-route与ui-router路由的区别

什么是路由? 路由是AngularJS构建单页面应用的基础。 路由,就是网络数据或者请求进行分发的一个网络组件。 路由就是一个用于请求URL分发和跳转的一个应用组件,Angular中通过$routeProvider路由服务提供者进行核心的配置处理。 ng路由 ng 路由是 AngularJS 官方提供的一种简单的路由操作。  ng 路由主要分三个组成部分:路由指令、路由

qq_33571580的博客 584

Angular-ui-route

ng-route ng-route是官方的原来就实现的路由器 范例如下:angular.module('myApp', []) .config('myAppCtrl', ['$routeProvider', function ( $routeProvider ) { $routeProvider .when('/', {

扑满大师 726

HTML5-angular中的Ui route

Angular—Ui routengroute和uiroute的区别 什么是路由? 路由是AngularJS构建单页面应用的基础。路由,就是网络数据或者请求进行分发的一个网络组件。 路由就是一个用于请求URL分发和跳转的一个应用组件,Angular中通过$routeProvider路由服务提供者进行核心的配置处理。ng路由 ng 路由是 angularjs 官方提供的一种简单的路由操作。

itszt888的博客 475

Angular子路由:不只是嵌套路由,而是应用架构分水岭

在单页应用(SPA)开发中,路由机制是连接用户交互与视图渲染的核心枢纽。Angular Router 通过声明式配置实现路径到组件的映射,其子路由(Child Routes)并非语法糖,而是支撑模块化、按需加载与状态隔离的关键架构原语。它依托 router-outlet 实现多级视图嵌套,结合 ActivatedRoute 提供层级化路由数据流,并天然适配懒加载(loadChildren)与守卫(Guards)机制,显著提升首屏性能与可维护性。广泛应用于中后台系统、微前端集成及 SSR 场景,是 Angul

diaogan4202的博客 382

ngRoute 和 ui.router 的使用方法和区别

在单页面应用中要把各个分散的视图给组织起来是通过路由机制来实现的。本文主要对 AngularJS 原生的 ngRoute 路由模块和第三方路由模块 ui.router 的用法进行简单介绍,并做一个对比。 ngRoute 使用方法 1) 引入 angular-route lib 无论是 ngRoute 还是 ui.router ,作为框架额外的附加功能,都必须以 模块依赖 的形式被引入。

pursuer211的专栏 1993

[AngularJS] “多重路由”嵌套模块——AngularJS“路由”嵌套学习资料教程

这是小编的一些学习资料,理论上只是为了自己以后学习需要的,但是还是需要认真对待的 以下内容仅供参考,请慎重使用学习 1.AngularJS路由嵌套 Angularjs本身自带路由模块,可以满足通过不同的 URL 访问不同的内容,当然实际应用为在单页面点击不同按钮等加载不同页面 之前有关于angular-route路由的介绍,但是只能一层路由嵌套,如果需要多重嵌套就是不够用了 ...

weixin_30872671的博客 228

Angular *ngIf 原理与实战:销毁式条件渲染的性能与内存本质

在 Angular 框架中,*ngIf 是一种结构型指令,其核心在于‘存在性控制’而非视觉隐藏——它通过 TemplateRef 与 ViewContainerRef 协同,在条件为 false 时彻底销毁 DOM、组件实例、变更检测器及所有订阅。这种语义化销毁机制直接决定内存占用、变更检测开销与状态隔离能力,是实现权限动态加载、错误状态解耦、实时数据流清理的关键技术基础。相比 *ngShow、[hidden] 或 CSS display 控制,*ngIf 提供了更严格的资源生命周期管理,适用于表单区域切换

weixin_30402343的博客 369

angularJS

1.AngularJS简述 AngularJS的官方文档是这样介绍它的。 完全使用JavaScript编写的客户端技术。同其他历史悠久的Web技术(HTML、CSS 和JavaScript)配合使用,使Web应用开发比以往更简单、更快捷。 AngularJS使开发Web应用变得非常简单,同时也降低了构建复杂应用的难度。它提供了开发者在现代Web应用中经常要用到的一系列高级功能,例如: 解...

hello_world123456789的博客 845

ngRoute 路由

做单页面应用多是通过不同的url来识别出不同的页面展现的。 angularjs 为我们提供一个封装好的ngRoute工具 简单介绍用法 : <div ng-view></div> 界面上放入一个 ng-view指令,待会儿界面会刷新这个区域,它也支持动画,可以通过添加css在切换视图时做一些动画。 我们一段一段来看 v...

weixin_34406061的博客 201
上一篇: angularJS 路由不能正常工作 URL中出现#!
下一篇: vue的 计算属性(computed)、methods、watched三者区别
SnakeMoving
博客等级 码龄11年 65粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值