理由: return でラップされていないデータはプロジェクト内でグローバルに表示されるため、変数汚染が発生します。return ラップを使用している間、データ内の変数は現在のコンポーネントでのみ有効になり、有効にはなりません。他のコンポーネントに影響を与えます。
このチュートリアルの動作環境: Windows7 システム、vue2.9.6 バージョン、DELL G3 コンピューター。
公式:
コンポーネントを定義するとき、コンポーネントは複数のインスタンスの作成に使用される可能性があるため、データは初期データ オブジェクトを返す関数として宣言される必要があります。 。 data
が依然として純粋なオブジェクトである場合、すべてのインスタンスは同じデータ オブジェクトへの参照を共有します。 data 関数を提供すると、新しいインスタンスが作成されるたびに data
関数を呼び出すことができるため、元のデータ オブジェクトの新しいコピーが返されます。
プロジェクトでデータを返すためにデータが return を使用する必要があるのはなぜですか?
return でラップされていないデータはプロジェクト内でグローバルに表示されるため、変数汚染が発生します。return を使用した後は、データ内の変数が有効になるのは現在のコンポーネントに適用され、他のコンポーネントには影響しません。
コンポーネントは複数のインスタンスの作成に使用される可能性があるため、コンポーネントを定義するときは、データを初期データ オブジェクトを返す関数として宣言する必要があります。 data
が依然として純粋なオブジェクトである場合、すべてのインスタンスは同じデータ オブジェクトへの参照を共有します。データ関数を提供すると、新しいインスタンスが作成されるたびにデータ関数を呼び出すことができるため、元のデータ オブジェクトの完全に新しいコピーが返されます。
アナログおよび参照データ型。関数 return を使用しない場合、各コンポーネントのデータはメモリ内の同じアドレスになります。一方のデータが変更されると、他方のデータも変更されます。これは当然ながら望ましくないことです。 function return を使用することは、実際には互いに独立した新しい変数を宣言することに相当しますが、当然そのような問題は発生せず、js がオブジェクト object を代入するときに同じメモリ アドレスを直接使用します。そこで、各コンポーネントのデータを独立させるために、このような方法を採用しています。
コンポーネントではない場合、通常のデータ書き込みメソッドでオブジェクトを直接書き込むことができます。たとえば、同じコンポーネント内の 2 つの計算機がデータを共有します: {num: 0}。JS でオブジェクトを直接共有すると、参照転送が発生します。は、プラスボタンとマイナスボタンを押した後にすべての数値が変更されると言われているので、ここでは関数を使用して毎回オブジェクトインスタンスを返します。
[関連する推奨事項: vue.js チュートリアル]
以上がvue 内のデータがデータを返すために return を使用する必要があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。