Salesforce Lightning Web Components (LWC) では、NavigationMixin
はナビゲーション関連の機能を提供するツールで、LightningElement
クラスと一緒に使用されることが多いです。これにより、Lightningアプリケーション内でのナビゲーション機能が有効になります。
以下は、extends NavigationMixin(LightningElement)
と extends LightningElement
の違いです。
extends LightningElement
LightningElement
を拡張すると、コンポーネントは Lightning Web Components フレームワークが提供する基本的な機能
を継承します。これには、コンポーネントのライフサイクルの処理、レンダリング、標準のコンポーネント機能が含まれますが、ナビゲーション機能は含まれません。
例:
import { LightningElement } from 'lwc';
export default class MyComponent extends LightningElement {
// コンポーネントのロジック
}
extends NavigationMixin(LightningElement)
NavigationMixin(LightningElement)
を拡張すると、LightningElement
と NavigationMixin
を組み合わせて、追加のナビゲーション機能を追加できます。NavigationMixin
を使用すると、navigate
メソッドを使って、Salesforce アプリケーション内の異なるページやコンポーネントにプログラム的にナビゲートできます。
例:
import { LightningElement } from 'lwc';
import { NavigationMixin } from 'lightning/navigation';
export default class MyComponent extends NavigationMixin(LightningElement) {
handleNavigation() {
this[NavigationMixin.Navigate]({
type: 'standard__recordPage',
attributes: {
recordId: '001XXXXXXXXXXXXXXX',
objectApiName: 'Account',
actionName: 'view'
}
});
}
}
この例では、NavigationMixin
を使用してコンポーネントにナビゲーション機能を含めています。handleNavigation
メソッドは、NavigationMixin.Navigate
メソッドを使用してレコードページにナビゲートする方法を示しています。
まとめ
-
extends LightningElement
:コンポーネントには基本的な Lightning Web Component の機能がありますが、ナビゲーション機能はありません。 -
extends NavigationMixin(LightningElement)
:基本的な Lightning Web Component 機能に加えて、ナビゲーション機能があり、アプリケーション内のナビゲーションをプログラム的に制御できます。
ナビゲーション機能(ユーザーを異なるページやレコードに誘導するなど)が必要な場合は、NavigationMixin
を使用します。ナビゲーションが不要な場合は、LightningElement
の拡張で十分です。