이 기사에서는 Angular의 라우팅을 안내합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.
Angular Route (Route)
라우터를 전체 애플리케이션의 상태를 제어하는 뷰 개체로 이해할 수 있습니다. 라우터의 또 다른 기능은 고유한 URL을 할당하는 것입니다. 각 보기에서 이 URL을 사용하여 애플리케이션 간의 특정 보기 상태로 이동할 수 있습니다. 단일 페이지 애플리케이션은 실제로 보기 상태의 모음입니다.
추천 튜토리얼: "angular Tutorial"
단일 페이지 애플리케이션(SPA)
단일 페이지 애플리케이션은 메인 페이지가 한 번만 로드되고 반복적으로 새로 고쳐지지 않고 페이지의 일부만 변경하는 애플리케이션입니다. 페이지의 내용. Angular 애플리케이션은 페이지를 다시 로드하지 않고 사용자 작업에 따라 페이지 내용을 변경하기 위해 Angular의 라우터를 사용하는 단일 페이지 애플리케이션입니다. 단일 페이지 애플리케이션은 뷰 상태의 모음으로 이해될 수 있습니다.
Routing object
Routes Routing Array
라우터는 라우팅 정보를 갖기 전에 먼저 구성해야 하며 RouterModule.forRoot 메소드를 사용하여 라우터를 구성해야 합니다. 브라우저의 URL이 변경되면 라우터는 해당 경로를 조회하고 이를 기반으로 표시할 구성 요소를 결정합니다.
기본 구성:
const appRoutes: Routes = [ { path: 'common/a', component: AComponent }, { path: 'common/b/:id', component: BComponent }, { path: '**', component: NotFoundComponent}, // 定义通配符路由 ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule], ... })
RouterOutlet RouterOutlet
RouterOutlet은 라우팅 모듈의 지시어이며 사용법은 구성 요소와 유사합니다. 이는 라우터가 이 콘센트에 표시할 구성 요소를 표시할 템플릿의 위치를 표시하는 자리 표시자 역할을 합니다.
<h1 id="组件的内容显示在-Angular의-경로-라우팅에-대한-자세한-설명-outlet-下方">组件的内容显示在(Angular의 경로 라우팅에 대한 자세한 설명-outlet)下方</h1> <angular></angular>의 경로 라우팅에 대한 자세한 설명-outlet>
Router Router
라우터 개체를 사용하여 탐색하세요.
constructor(private Angular의 경로 라우팅에 대한 자세한 설명: Router) {} toAComponent() { this.Angular의 경로 라우팅에 대한 자세한 설명.navigate(['/common/a']); // 或 this.Angular의 경로 라우팅에 대한 자세한 설명.navigateUrl('common/a'); }
RouterLink 라우터 링크
경로 링크 URL은 '/'로 시작해야 합니다.
<a [Angular의 경로 라우팅에 대한 자세한 설명Link]="['/']">主页</a> <a [Angular의 경로 라우팅에 대한 자세한 설명Link]="['/common/b', id]">B组件</a> <Angular의 경로 라우팅에 대한 자세한 설명-outlet></Angular의 경로 라우팅에 대한 자세한 설명-outlet>
ActivatedRoute Activated Route
현재 활성화된 경로의 경로와 매개변수는 ActivateRoute의 라우팅 서비스를 통해 얻을 수 있습니다.
- 일반적으로 사용되는 속성:
Attributes Description url 라우팅 경로의 Observable 객체는 라우팅 경로의 다양한 부분으로 구성된 문자열 배열입니다. data 경로에 제공되는 데이터 객체를 포함하는 Observable입니다. 또한 리졸브 가드에 의해 해결된 값도 포함됩니다. paramMap 현재 경로의 필수 및 선택적 매개변수로 구성된 지도 객체가 포함된 Observable입니다. 이 맵을 사용하여 동일한 이름을 가진 매개변수에서 단일 값 또는 여러 값을 가져옵니다. queryParamMap 모든 경로에 유효한 쿼리 매개변수의 지도 객체를 포함하는 Observable입니다. 쿼리 매개변수에서 단일 값 또는 여러 값을 가져오려면 이 맵을 사용하세요.
在路由时传递数据
- 在查询参数中传递数据
/common/b?id=1&name=2 => ActivatedRoute.queryParamMap
- 在路由路径中传递数据
{path: /common/b/:id} => /commo/b/1 => ActivatedRoute.paramMap
- 在路由配置中传递数据
{path: /common/b, component: BComponent, data: {id:“1”, title: “b”}}
- 示例
constructor( private activatedRoute: ActivatedRoute ) { } ngOnInit() { // 从参数中获取 this.activatedRoute.queryParamMap.subscribe(params => { this.id = params.get('id'); }); // 或 // this.activated.snapshot.queryParamMap.get('id'); // 从路径中获取 this.activatedRoute.paramMap.subscribe(params => { this.id = params.get('id'); }); this.activatedRoute.data.subscribe(({id,title}) => { }); }
snapshot
: 参数快照,是一个路由信息的静态快照,抓取自组件刚刚创建完毕之后,不会监听路由信息的变化。如果确定一个组件不会从自身路由到自身的话,可以使用参数快照。
subscribe
: 参数订阅,相当于一个监听器,会监听路由信息的变化。
重定向路由
在用户访问一个特定的地址时,将其重定向到另一个指定的地址。
配置重定向路由:
// 当访问根路径时会重定向到 home 路径 const appRoutes: Routes = [ { path: '', redirectTo: 'home', pathMatch: 'full'}, { path: 'home', component: HomeComponent} ];
子路由
子路由配置语法:
const appRoutes: Routes = [ { path: 'home', component: HomeComponent, children: [ { path: '', component: AComponent}, { path: 'b', component: BComponent} ] }, ];
辅助路由
辅助路由又兄弟路由,配置语法:
// 路由配置 {path: 'xxx', component: XxxComponent, outlet:'xxxlet'}, {path: 'yyy', component: XxxComponent, outlet:'yyylet'} // 使用 <Angular의 경로 라우팅에 대한 자세한 설명-outlet></Angular의 경로 라우팅에 대한 자세한 설명-outlet> <Angular의 경로 라우팅에 대한 자세한 설명-outlet name="xxxlet"></Angular의 경로 라우팅에 대한 자세한 설명-outlet> // 链接 <a [Angular의 경로 라우팅에 대한 자세한 설명Link]="['/home',{outlets:{xxxlet: 'xxx'}}]">Xxx</a>
当点击Xxx链接时,主插座会显示’/home’链接所对应的组件,而xxxlet插座会显示xxx对应的组件。
路由守卫(guard)
CanActivate/CanActiveChild:处理导航到某路由的情况
当用户不满足这个守卫的要求时就不能到达指定路由。
export class DemoGuard1 implements CanActivate { canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean { ... return true; } }
CanDeactivate:处理从当前路由离开的情况
如果不满足这个守卫的要求就不能离开该路由。
// 泛型中 AComponent 代表要守卫的组件。 export class DemoGuard2 implements CanDeactivate<AComponent> { canDeactivate(component: AComponent): boolean { // 根据 component 的信息进行具体操作 retturn true; } }
Resolve:在路由激活之前获取路由数据
在进入路由时就可以立刻把数据呈现给用户。
@Injectable() export AResolve implements Resolve<any> { resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { const id = route.paramMap.get('id'); // 可以根据路由中的信息进行相关操作 } }
最后,需要将路由守卫添加到路由配置中:
const appRoutes: Routes = [ { path: 'common/a', component: AComponent, canActivate: [DemoGurad1], canDeactivate: [DemoGuard2], resolve: {data: AResolve} }, { path: 'common/b/:id', component: BComponent }, { path: '**', component: NotFoundComponent}, // 定义通配符路由 ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule], ... })
更多编程相关知识,请访问:编程入门!!
위 내용은 Angular의 경로 라우팅에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

일상적인 기술 도구를 사용하여 기능적 다중 테넌트 SaaS 응용 프로그램 (Edtech 앱)을 구축했으며 동일한 작업을 수행 할 수 있습니다. 먼저, 다중 테넌트 SaaS 응용 프로그램은 무엇입니까? 멀티 테넌트 SAAS 응용 프로그램은 노래에서 여러 고객에게 서비스를 제공 할 수 있습니다.

이 기사에서는 Contrim에 의해 확보 된 백엔드와의 프론트 엔드 통합을 보여 주며 Next.js를 사용하여 기능적인 Edtech SaaS 응용 프로그램을 구축합니다. Frontend는 UI 가시성을 제어하기 위해 사용자 권한을 가져오고 API가 역할 기반을 준수하도록합니다.

JavaScript는 현대 웹 개발의 핵심 언어이며 다양성과 유연성에 널리 사용됩니다. 1) 프론트 엔드 개발 : DOM 운영 및 최신 프레임 워크 (예 : React, Vue.js, Angular)를 통해 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축합니다. 2) 서버 측 개발 : Node.js는 비 차단 I/O 모델을 사용하여 높은 동시성 및 실시간 응용 프로그램을 처리합니다. 3) 모바일 및 데스크탑 애플리케이션 개발 : 크로스 플랫폼 개발은 개발 효율을 향상시키기 위해 반응 및 전자를 통해 실현됩니다.

JavaScript의 최신 트렌드에는 Typescript의 Rise, 현대 프레임 워크 및 라이브러리의 인기 및 WebAssembly의 적용이 포함됩니다. 향후 전망은보다 강력한 유형 시스템, 서버 측 JavaScript 개발, 인공 지능 및 기계 학습의 확장, IoT 및 Edge 컴퓨팅의 잠재력을 포함합니다.

JavaScript는 현대 웹 개발의 초석이며 주요 기능에는 이벤트 중심 프로그래밍, 동적 컨텐츠 생성 및 비동기 프로그래밍이 포함됩니다. 1) 이벤트 중심 프로그래밍을 사용하면 사용자 작업에 따라 웹 페이지가 동적으로 변경 될 수 있습니다. 2) 동적 컨텐츠 생성을 사용하면 조건에 따라 페이지 컨텐츠를 조정할 수 있습니다. 3) 비동기 프로그래밍은 사용자 인터페이스가 차단되지 않도록합니다. JavaScript는 웹 상호 작용, 단일 페이지 응용 프로그램 및 서버 측 개발에 널리 사용되며 사용자 경험 및 크로스 플랫폼 개발의 유연성을 크게 향상시킵니다.

Python은 데이터 과학 및 기계 학습에 더 적합한 반면 JavaScript는 프론트 엔드 및 풀 스택 개발에 더 적합합니다. 1. Python은 간결한 구문 및 풍부한 라이브러리 생태계로 유명하며 데이터 분석 및 웹 개발에 적합합니다. 2. JavaScript는 프론트 엔드 개발의 핵심입니다. Node.js는 서버 측 프로그래밍을 지원하며 풀 스택 개발에 적합합니다.

JavaScript는 이미 최신 브라우저에 내장되어 있기 때문에 설치가 필요하지 않습니다. 시작하려면 텍스트 편집기와 브라우저 만 있으면됩니다. 1) 브라우저 환경에서 태그를 통해 HTML 파일을 포함하여 실행하십시오. 2) Node.js 환경에서 Node.js를 다운로드하고 설치 한 후 명령 줄을 통해 JavaScript 파일을 실행하십시오.

쿼츠 타이머를 사용하여 작업을 예약 할 때 미리 쿼츠에서 작업 알림을 보내는 방법 작업의 실행 시간은 CRON 표현식에 의해 설정됩니다. 지금...


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Dreamweaver Mac版
시각적 웹 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음
