Zum Inhalt springen
rdlabo.devdocs

implements-ionic-lifecycle

Dieses Plugin empfiehlt die Implementierung der Ionic-Lebenszyklusinterfaces.

  • ⭐️ Diese Regel ist in der Flat Config rdlabo.configs.recommended enthalten.
  • ✒️ Die Option --fix auf der Befehlszeile kann einige der von dieser Regel gemeldeten Probleme automatisch korrigieren.

Ionic stellt Framework-Lebenszyklusmethoden wie ionViewWillEnter und ionViewDidLeave bereit. Deklariert eine Komponente diese Methoden, sollte sie außerdem das entsprechende Interface (ViewWillEnter, ViewDidEnter, ViewWillLeave, ViewDidLeave) implementieren, damit TypeScript den Vertrag prüfen kann. Diese Regel erzwingt diese Zuordnung und kann die implements-Klausel automatisch korrigieren.

Einzelheiten der Regel

Diese Regel prüft mit @Component dekorierte Klassen. Sie sucht nach Methodendefinitionen mit den Namen von Ionic-Lebenszyklusmethoden:

  • ionViewWillEnter -> ViewWillEnter
  • ionViewDidEnter -> ViewDidEnter
  • ionViewWillLeave -> ViewWillLeave
  • ionViewDidLeave -> ViewDidLeave

Wenn eine Methode vorhanden ist und ihr passendes Interface fehlt, meldet die Regel dies. Beim Korrigieren eines fehlenden Interfaces ersetzt sie die gesamte implements-Klausel durch die zu den verwendeten Methoden passenden Ionic-Lebenszyklusinterfaces. Dabei können andere Interfaces wie OnInit entfernt werden. Prüfen Sie daher die Korrektur und stellen Sie alle weiterhin benötigten Nicht-Ionic-Interfaces wieder her. Sind sämtliche erforderlichen Interfaces bereits vorhanden, werden zusätzliche Lebenszyklusinterfaces weder gemeldet noch entfernt.

  • Die Regel prüft keine Klassen, die keine Komponenten sind.
  • Ist der Klassenrumpf leer, implementiert aber Lebenszyklusinterfaces, entfernt die Regel die überholte implements-Klausel.
  • Die Regel meldet jede korrigierbare Gruppe nur einmal, um überlappende Korrekturen zu vermeiden.

Beispiele

Inkorrekt

@Component({
  selector: 'app-scanner',
  standalone: true,
})
export class ScannerPage {
  ionViewWillEnter() {}
  ionViewWillLeave() {}
}
@Component({
  selector: 'app-scanner',
  standalone: true,
})
export class ScannerPage implements ViewDidEnter, ViewDidLeave {
  ionViewWillEnter() {}
  ionViewWillLeave() {}
}

Korrekt

import { ViewWillEnter, ViewWillLeave } from '@ionic/angular';

@Component({
  selector: 'app-scanner',
  standalone: true,
})
export class ScannerPage implements ViewWillEnter, ViewWillLeave {
  ionViewWillEnter() {}
  ionViewWillLeave() {}
}
@Component({
  selector: 'app-scanner',
  standalone: true,
})
export class ScannerPage implements ViewDidEnter, ViewDidLeave {
  ionViewDidEnter() {}
  ionViewDidLeave() {}
}

Optionen

Diese Regel besitzt keine Optionen.

Wann die Regel aktiviert werden sollte

Aktivieren Sie diese Regel in jedem Ionic-Angular-Projekt. Sie hält die implements-Klausel beim Hinzufügen, Umbenennen oder Entfernen von Lebenszyklusmethoden korrekt und eignet sich gut für --fix.

Implementierung