angular 路由

本文介绍了一个使用Angular框架实现路由与模块化的简单示例。通过定义不同的路由路径,如主页、联系人页面和意见页面,并为每个路径指定模板和控制器,展示了如何组织和导航不同的视图内容。
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>路由传值</title>
        <script src="js/angular.min.js" type="text/javascript" charset="utf-8"></script>
        <script src="js/angular-route.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body ng-app="myApp" ng-controller="myCtrl">
        
        <a href="#/">主页</a><a href="#/contacts">联系人</a><a href="#/yijian">意见</a>
        <!--
            容器
        -->
        <ng-view></ng-view>
        <script type="text/javascript">
            var m = angular.module("myApp",["ngRoute"]);
            m.controller("myCtrl",function($scope){
                
                $scope.name = "张三";
                
                $scope.persons =["张三","李四","杨过"];
                
            })
            //在创建一个控制器
            m.controller("myCtrl2",function($scope){
                
                $scope.user  = "周伯通";
                
            })
            //$routeProvider 路由配置对象
            m.config(function($routeProvider){
                
//                $routeProvider.watch();

                $routeProvider.when("/",{template:"我是主页"})
                .when("/contacts",{templateUrl:"contact.html",controller:"myCtrl"})
                .when("/yijian",{templateUrl:"yijian.html",controller:"myCtrl2"})
                
            });
        </script>
    </body>
</html>

Angular路由是构建单页面应用(SPA)的核心组件之一,以下是关于Angular路由的使用方法、原理及最佳实践的相关信息: ### 使用方法 Angular路由模块允许为不同的视图组件定义URL路径,使应用导航更直观便捷。路由模块主要由导入(Imports)、路由配置(Routes)和路由出口(RouterOutlet)等部分组成。在Angular里,路由配置数组Routes描述了URL→组件的映射,通过定义路由规则,可将URL映射到对应的组件上。当用户访问特定URL时,Angular路由会渲染对应的组件。以下是一个简单的代码示例: ```typescript import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { HomeComponent } from './home.component'; import { AboutComponent } from './about.component'; const routes: Routes = [ { path: 'home', component: HomeComponent }, { path: 'about', component: AboutComponent }, { path: '', redirectTo: '/home', pathMatch: 'full' } ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule { } ``` 在上述代码中,定义了两个路由路径,分别对应`HomeComponent`和`AboutComponent`,并且设置了默认路由重定向到`/home`。 ### 原理 客户端路由通过拦截浏览器的导航事件,然后根据定义好的路由规则在应用内部进行页面的跳转,而不会重新加载整个页面。这种机制提升了用户体验,使SPA能够快速响应用户的操作。用户手动输入URL或点击链接都会触发对应组件渲染,这就是SPA deep link的基本原理 [^2][^3]。 ### 最佳实践 - **有效利用路由参数和组件输入属性**:可以优化应用,根据不同的参数渲染不同的内容。 - **合理组织路由配置**:避免路由规则过于复杂,提高代码的可维护性。 - **使用路由守卫**:可以控制路由的访问权限,增强应用的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值