Aura を使用したときのデータバインド動作の違い

マークアップにコンポーネントを追加すると、オーナーコンポーネントのプロパティ値に基づいてコンポーネントの公開プロパティ値を初期化できます。Lightning Web Components では、プロパティ値のデータバインドは一方向になります。Lightning Web Components と Aura 開発モデルの場合、データバインド動作は異なります。

Aura のデータバインドの式構文には 2 つの形式があります。

式の構文形式間の違いについて概要を次に示します。

{#expression} (非バインド式)

データの更新は、JavaScript で期待どおりに動作します。String などのプリミティブが値によって渡され、親と子の式でのデータ更新は分離しています。 ArrayMap などのオブジェクトは参照によって渡されます。したがって、子のデータへの変更は親に伝達されます。ただし、親の変更ハンドラは通知されません。親の変更が子に伝達される場合も同じ動作が適用されます。

{!expression} (バインド式)

どちらのコンポーネントでのデータの更新も、双方向データバインドによって両方のコンポーネントに反映されます。同様に、変更ハンドラは親と子両方のコンポーネントでトリガされます。

プロパティ値のコンポーネント間のデータバインドは一方向になります。

親コンポーネントから子コンポーネントに通信するには、プロパティを設定するか、子コンポーネントのメソッドをコールします。

子コンポーネントから親コンポーネントに通信するには、イベントを送信します。

詳細については、「子コンポーネントのプロパティの設定」を参照してください。