Aura を使用したときのデータバインド動作の違い
マークアップにコンポーネントを追加すると、オーナーコンポーネントのプロパティ値に基づいてコンポーネントの公開プロパティ値を初期化できます。Lightning Web Components では、プロパティ値のデータバインドは一方向になります。Lightning Web Components と Aura 開発モデルの場合、データバインド動作は異なります。
Aura のデータバインドの式構文には 2 つの形式があります。
式の構文形式間の違いについて概要を次に示します。
{#expression}
(非バインド式)
データの更新は、JavaScript で期待どおりに動作します。String
などのプリミティブが値によって渡され、親と子の式でのデータ更新は分離しています。
Array
や Map
などのオブジェクトは参照によって渡されます。したがって、子のデータへの変更は親に伝達されます。ただし、親の変更ハンドラは通知されません。親の変更が子に伝達される場合も同じ動作が適用されます。
{!expression}
(バインド式)どちらのコンポーネントでのデータの更新も、双方向データバインドによって両方のコンポーネントに反映されます。同様に、変更ハンドラは親と子両方のコンポーネントでトリガされます。
プロパティ値のコンポーネント間のデータバインドは一方向になります。
親コンポーネントから子コンポーネントに通信するには、プロパティを設定するか、子コンポーネントのメソッドをコールします。
子コンポーネントから親コンポーネントに通信するには、イベントを送信します。
詳細については、「子コンポーネントのプロパティの設定」を参照してください。