最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Angular中的ActivatedRoute和Router原理解釋

 更新時(shí)間:2023年04月16日 16:31:17   作者:Data_Adventure  
這篇文章主要為大家介紹了Angular中的ActivatedRoute和Router原理解釋,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

Angular中的ActivatedRoute和Router解釋

在Angular中,ActivatedRouteRouter是兩個(gè)核心的路由服務(wù)。他們都提供可以用來(lái)檢查和操作當(dāng)前頁(yè)面路由信息的方法和屬性。

ActivatedRoute

ActivatedRoute是一個(gè)保存關(guān)于當(dāng)前路由狀態(tài)(如路由參數(shù)、查詢參數(shù)以及其他數(shù)據(jù))的對(duì)象。 它可以讓開(kāi)發(fā)人員從路由器中訪問(wèn)路由參數(shù)和查詢參數(shù)。

ActivatedRoute是路由事件數(shù)據(jù)的載體。 這包括在導(dǎo)航期間收集的靜態(tài)和動(dòng)態(tài)段以及查詢參數(shù)、Fragment等等。

例如,對(duì)于這個(gè)路由:

{ path: 'product/:id', component: ProductDetailComponent }

通過(guò)獲取ActivatedRoute,我們可以輕松地訪問(wèn)id值:

import { Component } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@Component({
  selector: 'app-product-detail',
  template: 'Product Details Component'
})
export class ProductDetailComponent implements OnInit {
  constructor(private route: ActivatedRoute) {}
  ngOnInit() {
    const id = +this.route.snapshot.paramMap.get('id');
    // ...
  }
}

在上面的代碼示例中,ActivatedRoute通過(guò)注入該服務(wù)作為構(gòu)造函數(shù)的參數(shù)而獲取。接下來(lái),我們只需使用快照對(duì)象(即this.route.snapshot)就可以快速訪問(wèn)路由參數(shù)。要獲取參數(shù)的特定值,可以使用get方法訪問(wèn)params屬性,該方法采用一個(gè)字符串參數(shù)并返回一個(gè)字符串:

const id = +this.route.snapshot.paramMap.get('id');

這里的加號(hào)意味著我們將結(jié)果轉(zhuǎn)換為數(shù)字類型。

另一種訪問(wèn)路由參數(shù)的方法是通過(guò)訂閱paramMap可觀察值。subscribe`方法定義給observable帶來(lái)副作用,就像任何** RxJS **observable一樣:

this.route.paramMap.subscribe(params => {
  const id = +params.get('id');
  // ...
});

這種方式允許動(dòng)態(tài)更改URL。(你的組件不需要重新創(chuàng)建。)

Router

Router通過(guò)向前和向后導(dǎo)航和路由裝置提供了一種明顯且簡(jiǎn)單的編程API,同時(shí)仍然保留完全配置的強(qiáng)大能力。

路由器是一個(gè)抽象的概念,它用于選擇輸入U(xiǎn)RL,并將其轉(zhuǎn)換為經(jīng)過(guò)測(cè)試的規(guī)則來(lái)獲取特定組件。 在Angular中,路由器是NgModule中的引導(dǎo)項(xiàng)之一。 路由器設(shè)置可能看起來(lái)非常困難,但是一旦了解了基本情況,它們就會(huì)感到自然。

基本導(dǎo)航

首先,我們根據(jù)常規(guī)用法配置Routes數(shù)組:

// app-routing.module.ts file
import { Routes, RouterModule } from '@angular/router';
import { HomeComponent } from './home/home.component';
import { ProductListComponent } from './product-list/product-list.component';
import { ProductDetailComponent } from './product-detail/product-detail.component';
const routes: Routes = [
  { path: '', component: HomeComponent },
  { path: 'products', component: ProductListComponent },
  { path: 'products/:id', component: ProductDetailComponent }
];
@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

我們?cè)O(shè)定了三個(gè)路由:空路徑(主頁(yè)),產(chǎn)品列表和特定ID的產(chǎn)品。 每個(gè)路徑都與對(duì)應(yīng)的組件相關(guān)聯(lián)。

然后,我們?cè)谀0寤蚪M件類中安排具有相應(yīng)路由聲明的鏈接:

<!-- home.component.html -->
<a routerLink="/">Home</a>
<a routerLink="/products">Product List</a>
<!-- product-list.component.html -->
<ul>
    <li *ngFor="let product of products">
        <a [routerLink]="['/products', product.id]">{{ product.name }}</a>
    </li>
</ul>
<!-- product-detail.component.html -->
<h2>Product Detail</h2>
<p>{{ product }}</p>

在上面的所有代碼示例中,我們使用了routerLink指令完成路由導(dǎo)航。現(xiàn)在,當(dāng)用戶點(diǎn)擊鏈接時(shí),路由器會(huì)根據(jù)路徑加載相應(yīng)的組件并在指令的位置動(dòng)態(tài)渲染該組件。

以上就是Angular中的ActivatedRoute和Router原理詳解的詳細(xì)內(nèi)容,更多關(guān)于Angular ActivatedRoute Router的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • AngularJS封裝$http.post()實(shí)例詳解

    AngularJS封裝$http.post()實(shí)例詳解

    這篇文章主要介紹了 AngularJS封裝$http.post()實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Angularjs單選框相關(guān)的示例代碼

    Angularjs單選框相關(guān)的示例代碼

    本篇文章主要介紹了Angularjs單選框相關(guān)的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Angular2中constructor和ngOninit的使用講解

    Angular2中constructor和ngOninit的使用講解

    這篇文章主要介紹了Angular2中constructor和ngOninit的使用講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 解決nodejs中使用http請(qǐng)求返回值為html時(shí)亂碼的問(wèn)題

    解決nodejs中使用http請(qǐng)求返回值為html時(shí)亂碼的問(wèn)題

    下面小編就為大家?guī)?lái)一篇解決nodejs中使用http請(qǐng)求返回值為html時(shí)亂碼的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • AngularJS日程表案例詳解

    AngularJS日程表案例詳解

    本文通過(guò)實(shí)例代碼給大家介紹了AngularJS日程表案例詳解,通過(guò)簡(jiǎn)單代碼實(shí)現(xiàn)了添加事件/完成事件/刪除事件功能,具體代碼大家參考下本文
    2017-08-08
  • AngularJS仿蘋(píng)果滑屏刪除控件

    AngularJS仿蘋(píng)果滑屏刪除控件

    前端開(kāi)發(fā)中,為了對(duì)列表項(xiàng)進(jìn)行快捷操作,有時(shí)就添個(gè)按鈕來(lái)簡(jiǎn)單實(shí)現(xiàn)。但是,有時(shí)會(huì)發(fā)現(xiàn)按鈕影響美觀,甚至影響列表行的布局。稍在網(wǎng)上搜索無(wú)果,而寫(xiě)此仿蘋(píng)果滑屏刪除控件
    2016-01-01
  • AngularJs  Creating Services詳解及示例代碼

    AngularJs Creating Services詳解及示例代碼

    本文主要介紹AngularJs Creating Services的知識(shí)資料,這里整理了詳細(xì)的資料及簡(jiǎn)單示例代碼,有需要的小伙伴可以參考下
    2016-09-09
  • 在 Angular 中使用懶加載路由的方法

    在 Angular 中使用懶加載路由的方法

    延遲加載是一種限制加載用戶當(dāng)前需要的模塊的方法,這可以提高應(yīng)用程序的性能并減小初始捆綁包大小,在本文中,您學(xué)習(xí)了如何在 Angular 應(yīng)用程序中使用惰性加載路由,本文分步驟講解的非常詳細(xì),感興趣的朋友一起看看吧
    2024-02-02
  • spring+angular實(shí)現(xiàn)導(dǎo)出excel的實(shí)現(xiàn)代碼

    spring+angular實(shí)現(xiàn)導(dǎo)出excel的實(shí)現(xiàn)代碼

    這篇文章主要介紹了spring+angular實(shí)現(xiàn)導(dǎo)出excel的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Angular客戶端請(qǐng)求Rest服務(wù)跨域問(wèn)題的解決方法

    Angular客戶端請(qǐng)求Rest服務(wù)跨域問(wèn)題的解決方法

    本篇文章主要介紹了Angular客戶端請(qǐng)求Rest服務(wù)跨域問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09

最新評(píng)論

大石桥市| 营山县| 龙门县| 佳木斯市| 梁山县| 忻城县| 城市| 巴南区| 章丘市| 大足县| 安塞县| 银川市| 阿合奇县| 张家川| 固原市| 信宜市| 静安区| 镇坪县| 长葛市| 宾川县| 巨野县| 麻江县| 新绛县| 宜宾市| 江川县| 泽库县| 武邑县| 徐水县| 英德市| 垦利县| 鱼台县| 申扎县| 嘉禾县| 洞头县| 白沙| 郸城县| 房产| 申扎县| 睢宁县| 宣汉县| 阿克|