2016-12-09 9 views

答えて

0

通常これは、あなたがしたい場合に行われますが固定値を返すだけでなく、動的な値を計算して代わりに返すことができますが、{}以上の何かを返すのは怠惰だということを示しています。場合によっては、宣言しているものがフレームワークによってある場所で使用され、固定値またはオブジェクトだけでなく、オブジェクトを返す関数があると予想されます。

コードを変更して実行し、エラーや動作が異なるかどうかを調べるとわかります。

2

が、私はそれがvuejsは機能ではなく、それがあることをオブジェクトとしてレンダリングするために彼らのdataコンポーネントを必要とするという同じ理由であると感じ:基本的な例で

、我々はプレーンとして直接データを宣言するオブジェクト。 これは、新しいVue()でインスタンスを1つだけ作成するためです。 ただし、コンポーネントを定義する場合、データは、初期データオブジェクトを返す関数 として宣言する必要があります。 なぜですか? 同じ定義を使用して多数のインスタンスが作成されるためです。 データの明白なオブジェクトを使用している場合、その同じオブジェクトは参照によって共有されます すべてのインスタンスが作成されました!データ関数を提供することにより、新しいインスタンスが作成されるたびに、単に初期データの新しい コピーを返すように呼び出すことができます。

このように、必ずデータを部品に与えられていることを作ることは、常に新鮮な「負荷」

・ホープ、このことができますの指標であります!

5

これはexampleで説明されている:オブジェクトまたは配列値にプロパティを初期化するときではなくオブジェクトを有するよりも、各要素が値の独自のコピーを取得することを保証するために関数を使用し、

又は配列は要素のすべてのインスタンスにわたって共有されます。

あなたが{}を使用することができますが、値が一つの要素のために変異している場合は、他のすべての要素がそれに適用されたものと同じ変化を見るなるように、これは、各要素が共有する同じオブジェクトになります。これはあなたがしたいことではありません。関数を使用することによって、各要素に対して関数が呼び出され、各呼び出しは新しい独立したオブジェクトを生成します。そして、突然変異は、他のものに影響を与えることなくその単一の要素にのみ適用されます。

関連する問題