Rumah > Artikel > hujung hadapan web > ## Bagaimanakah Saya Boleh Mengoptimumkan Prestasi Penghalaan Sudut 2 dengan Menyimpan dan Membuang Laluan Terpilih?
Apabila melaksanakan penghalaan dalam aplikasi Angular 2, anda mungkin mahukan laluan tertentu untuk disimpan dalam ingatan untuk pemaparan yang lebih pantas selepas melawat semula. Walau bagaimanapun, untuk sesetengah laluan, seperti paparan terperinci sumber, anda mungkin memilih untuk membuangnya daripada memori untuk menjimatkan sumber.
Angular 2 menyediakan antara muka RouteReuseStrategy untuk mengawal penyimpanan dan mendapatkan semula laluan. Dengan melaksanakan antara muka ini dan menyediakannya dalam modul Angular anda, anda boleh menentukan gelagat tersuai untuk masa laluan harus disimpan dan bila laluan harus dibuang.
Dalam kaedah shouldDetach, anda boleh menentukan sama ada laluan harus disimpan. Jika ia kembali benar, Angular akan menyimpan laluan. Biasanya, anda akan menyemak laluan laluan dan memutuskan sama ada untuk menyimpannya atau tidak berdasarkan satu set kriteria yang telah ditetapkan.
Jika shouldDetach kembali benar, kaedah stor dipanggil untuk menyimpan laluan. Anda boleh melaksanakan kaedah ini untuk menyimpan ActivatedRouteSnapshot dan DetachedRouteHandle, yang akan digunakan kemudian untuk digunakan semula.
Dalam kaedah shouldAttach, anda boleh menyemak sama ada laluan perlu digunakan semula. Jika ia kembali benar, Angular akan menggunakan versi laluan yang disimpan dan tidak membuat yang baharu. Anda boleh menggunakan ActivatedRouteSnapshot dan queryParams untuk membandingkan laluan masuk dengan sifat laluan yang disimpan untuk menentukan sama ada ia sepadan.
Jika shouldAttach mengembalikan benar, kaedah dapatkan semula dipanggil untuk mendapatkan semula versi yang disimpan daripada laluan itu. Anda boleh menggunakan DetachedRouteHandle yang disimpan oleh kedai untuk mengenal pasti dan mengembalikan laluan yang betul.
Sebagai contoh, pertimbangkan aplikasi tempat anda ingin menyimpan halaman hasil carian, tetapi bukan individu halaman butiran sumber. Begini cara anda melaksanakannya:
<code class="typescript">import { ActivatedRouteSnapshot, RouteReuseStrategy, DetachedRouteHandle } from '@angular/router'; export class CustomRouteReuseStrategy implements RouteReuseStrategy { private storedRoutes: { [key: string]: RouteStorageObject } = {}; shouldDetach(route: ActivatedRouteSnapshot): boolean { if (route.routeConfig.path === 'search/:term') { return true; } return false; } store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void { if (shouldDetach(route)) { this.storedRoutes[route.routeConfig.path] = { snapshot: route, handle }; } } shouldAttach(route: ActivatedRouteSnapshot): boolean { if (this.storedRoutes.hasOwnProperty(route.routeConfig.path)) { return true; } return false; } retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle { if (shouldAttach(route)) { return this.storedRoutes[route.routeConfig.path].handle; } return null; } shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean { return future.routeConfig === curr.routeConfig; } }</code>
Dalam AppModule:
<code class="typescript">@NgModule({ [...], providers: [ { provide: RouteReuseStrategy, useClass: CustomRouteReuseStrategy } ] }) export class AppModule {}</code>
Dengan menyediakan strategi ini, Angular akan mengurus penyimpanan dan mendapatkan semula laluan secara automatik berdasarkan peraturan yang anda tentukan , membolehkan prestasi dioptimumkan dalam aplikasi anda.
Atas ialah kandungan terperinci ## Bagaimanakah Saya Boleh Mengoptimumkan Prestasi Penghalaan Sudut 2 dengan Menyimpan dan Membuang Laluan Terpilih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!