Analisis ringkas laluan pembelajaran sudut oleh Pengawal Laluan

青灯夜游
Lepaskan: 2021-12-16 19:29:38
ke hadapan
3829 orang telah melayarinya

Artikel ini akan membawa anda memahami Pengawal Laluan dalam Sudut, dan memperkenalkan kaedah mencipta pengawal laluan, mengawal sama ada laluan itu boleh diaktifkan dan mengawal sama ada laluan itu boleh dikeluarkan. Saya harap ia akan membantu semua orang !

Analisis ringkas laluan pembelajaran sudut oleh Pengawal Laluan

Persekitaran:

  • Angular CLI: 11.0.6

  • Sudut: 11.0.7

  • Nod: 12.18.3

  • npm: 6.14.6

  • IDE: Visual Studio Code

Dalam proses pembangunan perniagaan sebenar kami, kami sering menghadapi keperluan berikut:

  • Kebolehcapaian URL tertentu perlu dihadkan, contohnya, untuk antara muka pengurusan sistem, hanya pengguna yang mempunyai hak pentadbir boleh membukanya. [Tutorial berkaitan yang disyorkan: "tutorial sudut"]

  • Apabila pengguna berada dalam antara muka penyuntingan dan keluar tanpa menyimpan, pengguna perlu digesa sama ada untuk meninggalkan pengubahsuaian itu.

Mensasarkan senario di atas, Angualr menggunakan 路由守卫 (Pengawal Laluan) untuk melaksanakannya.

Pengawal Laluan

1 Cipta pengawal laluan

Angular CLI menyediakan alatan baris arahan yang boleh mencipta rangka kerja pengawal laluan dengan pantas fail: ng generate guard auth. Selepas pelaksanaan, Angular CLI akan bertanya kepada kami antara muka yang perlu kami laksanakan, kami hanya boleh menyemaknya secara langsung:

? Which interfaces would you like to implement? (Press <space> to select, <a> to toggle all, <i> to invert selection)
>(*) CanActivate
 ( ) CanActivateChild
 ( ) CanDeactivate
 ( ) CanLoad
Salin selepas log masuk

Penerangan:

  • CanActivate: Mengawal sama ada laluan boleh diaktifkan

  • CanActivateChild: Mengawal sama ada sub-laluan boleh diaktifkan

  • CanDeactivate: Mengawal sama ada laluan boleh keluar

  • CanLoad: Kawal sama ada modul boleh dimuatkan

Yang lebih biasa digunakan ialah 1 dan 3, yang mengawal masuk dan keluar masing-masing. Mengikut konfigurasi di atas, AngularCLI menjana kod berikut secara automatik, cuma gantikan return true; dengan kod sebenar kami. return false; bermakna melompat tidak dibenarkan atau anda boleh membatalkan dan meninggalkan halaman semasa.

// auth.guard.ts
import { Injectable } from &#39;@angular/core&#39;;
import { CanActivate, CanDeactivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from &#39;@angular/router&#39;;
import { Observable } from &#39;rxjs&#39;;

@Injectable({
  providedIn: &#39;root&#39;
})
export class AuthGuard implements CanActivate, CanDeactivate<unknown> {
  canActivate(
    route: ActivatedRouteSnapshot,
    state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
    return true;
  }
}
Salin selepas log masuk

Dalam kaedah canActivate, kita juga boleh menggunakan lompatan. Sebagai contoh, halaman menentukan sama ada anda telah log masuk. Jika anda tidak log masuk, lompat ke halaman Log masuk:

this.router.navigate([&#39;/login&#39;]);
return false;
Salin selepas log masuk

2 Kawal sama ada penghalaan boleh diaktifkan

Untuk mengawal sama ada laluan boleh diaktifkan, ia perlu ditakrifkan di mana laluan ditakrifkan dan atribut canActivate ditambah. Jika perlu, anda juga boleh menambah atribut data, seperti memberitahu AuthGuard kami kebenaran yang perlu disahkan untuk memasuki laluan semasa. Atribut data adalah pilihan.

const routes: Routes = [
  {
    path: "page1",
    component: Page1Component,
    data: { permissions: [&#39;YourPage1Permission&#39;] },  // 传入参数给AuthGuard,可选
    canActivate: [AuthGuard]
  },
  {
    path: "page2",
    component: Page2omponent,
    data: { permissions: [&#39;YourPage2Permission&#39;] },  // 传入参数给AuthGuard,可选
    canActivate: [AuthGuard]
  }
]
Salin selepas log masuk

3 Kawal sama ada laluan keluar (keluar)

Sama seperti mengawal sama ada laluan boleh diaktifkan, tambahkan dan rumuskan Pengawal yang sepadan. Tiada lagi contoh di sini canDeactivate

Ringkasan

  • Kawal masuk dan keluar URL melalui Pengawal Laluan; kami dalam mencipta fail pengawal;

  • Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati:

    Pengenalan kepada Pengaturcaraan

    ! !

Atas ialah kandungan terperinci Analisis ringkas laluan pembelajaran sudut oleh Pengawal Laluan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:cnblogs.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan