配列内のオブジェクトをフリーズしてから変更しようとしたときのv-modelと:valueのVue.jsの違い

user1186050

したがって、行のあるテーブルがあり、その行には編集可能である必要のある注釈フィールドがあります。

データベースからフェッチされたオブジェクトは、配列に格納される前にフリーズされます。これは、多くの行を持つデータテーブルをフェッチする多くのページで見られたメモリの肥大化を減らすために行われた決定でした。

for (var i = 0; i < response.data.length; i++) { Object.freeze(response.data[i]); }
this.recordProductsList = this.recordProductsList.concat(response.data);

フィールドを変更しようとすると、「エラー:読み取り専用フィールドを変更できません」というエラーが表示されます。

そして、私はそのオブジェクトを凍結したので、これを理解しています!

しかし、次に要素をv-modelから:valueに変更すると、エラーなしで正常に機能しているように見え、正常に保存され、正常にフェッチされ、正常に更新されているように見えます。

どうして?ここでの違いは何ですか?私が理解していない将来の何かについて心配する必要がありますか?

<td>
  <v-text-field v-model="props.item.productAnnotationText" @input='inputAnnotation($event, props.item.id)' :disabled="!editMode" color="primary">
  </v-text-field>
</td>


to

<td>
  <v-text-field :value="props.item.productAnnotationText" @input='inputAnnotation($event, props.item.id)' :disabled="!editMode" color="primary">
  </v-text-field>
</td>
スカートル

あなたのv-model

<v-text-field
    v-model="props.item.productAnnotationText"
>

の省略形です:

<v-text-field
    :value="props.item.productAnnotationText"
    @input="props.item.productAnnotationText = $event"
>

ドキュメント:https//vuejs.org/v2/guide/components.html#Using-v-model-on-Components

props.item観察したように、オブジェクトがフリーズすると、イベントリスナーは失敗します。

使用するように変更すると:valueそのinputリスナーは取得されないため、オブジェクトの変更は試行されません。

ただし、それでもinputイベントの発生は停止しませんあなたはあなた自身のリスナーを持っていますinputAnnotation、そしてそれはうまく呼ばれるべきです。props.itemどちらのプロパティも変更することはできませんが、それは必要なものではないようです。

理解しておくべき重要なことは、オブジェクトprops.itemが古くなり、古い値がまだ含まれていることです。それはすぐには明らかにならないかもしれませんが、その値が後で使用されると問題になる可能性があります。

あなたが言ったことに基づいて、あなたはデータをサーバーに保存してから更新されたデータを再フェッチするように聞こえます。その場合、元のフリーズされたオブジェクトprops.itemを破棄し、同じ行を表すまったく新しいオブジェクトに置き換える可能性があります元のオブジェクトへの参照に固執しているものが他にない限り、すべてのデータが最新であることを意味します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ドット表記をキーとして使用できない配列のオブジェクトから変更された配列を作成する

分類Dev

クリックしたThree.jsオブジェクトの色を変更しようとしていますが、シーン内のすべてのオブジェクトの色が変更されます

分類Dev

データベースからオブジェクトの配列をレンダリングしようとしてエラーが発生しました

分類Dev

オブジェクト内の配列全体を置き換えることでレデューサーの状態を変更していますか?

分類Dev

オブジェクトの配列を別のオブジェクトの配列でフィルタリングしようとしています

分類Dev

配列内のJSオブジェクトはどのようにして独自の配列インデックスを返すことができますか?

分類Dev

vue.jsを使用してv-forからオブジェクトの配列内のいくつかのフィールドを計算します

分類Dev

文字列の配列をオブジェクトに変換して、それらのオブジェクトをキーと値のペアに分割できるようにするにはどうすればよいですか?

分類Dev

カスタムオブジェクトを含む配列内の配列として変更全体を保存しようとしています

分類Dev

javascriptまたはjqueryを使用して、localstorageストレージからそのオブジェクトを削除/削除できるように、localstorage内のオブジェクトのインデックスを取得しようとしています

分類Dev

TSを使用して配列内の各オブジェクトに新しいフィールドを挿入しようとしています

分類Dev

オブジェクト内のすべてのフィールドが存在するかどうかが不明なときに、オブジェクト配列を介してマッピングするにはどうすればよいですか?

分類Dev

配列内のmutilオブジェクトをlodashとどのようにマージしますか?

分類Dev

配列内にネストされたオブジェクトの状態を更新しようとしています... jsonデータを使用して

分類Dev

オブジェクトの配列を操作しようとしています

分類Dev

reactを使用してオブジェクトの配列内の既存のオブジェクトを更新しようとしています

分類Dev

model.fit()を実行しようとしたときのValueError-:NumPy配列をTensorに変換できませんでした(サポートされていないオブジェクトタイプnumpy.ndarray)

分類Dev

Unityでクリックしたときにゲームオブジェクトの色を変更するにはどうすればよいですか?

分類Dev

groupbyオブジェクトの新しい列に値を割り当てようとしたときのNotImplementedError

分類Dev

角度のある配列からオブジェクトの一意のリストを取得しようとしています

分類Dev

配列内のオブジェクトは、prepareForSegueを介して追加しようとすると置き換えられます

分類Dev

Php:返された「参照」を操作したときの配列とオブジェクトの違い

分類Dev

React Native:カスタム関数をオブジェクトの配列に適用し、変更された配列を追加のフィールドとともにJavascriptで返すにはどうすればよいですか?

分類Dev

React Native:カスタム関数をオブジェクトの配列に適用し、変更された配列を追加のフィールドとともにJavascriptで返すにはどうすればよいですか?

分類Dev

JSはループごとに配列内のオブジェクトを変更します

分類Dev

リストからオブジェクトを削除しようとしている間の反復中の同時変更

分類Dev

新しい着信オブジェクトから変更されていない元のオブジェクトのプロパティを保持するオブジェクトの配列からマージされたオブジェクトを作成するにはどうすればよいですか?

分類Dev

オブジェクトのリストからデータを取得しようとしています

分類Dev

配列内のオブジェクトを区別しようとしています

Related 関連記事

  1. 1

    ドット表記をキーとして使用できない配列のオブジェクトから変更された配列を作成する

  2. 2

    クリックしたThree.jsオブジェクトの色を変更しようとしていますが、シーン内のすべてのオブジェクトの色が変更されます

  3. 3

    データベースからオブジェクトの配列をレンダリングしようとしてエラーが発生しました

  4. 4

    オブジェクト内の配列全体を置き換えることでレデューサーの状態を変更していますか?

  5. 5

    オブジェクトの配列を別のオブジェクトの配列でフィルタリングしようとしています

  6. 6

    配列内のJSオブジェクトはどのようにして独自の配列インデックスを返すことができますか?

  7. 7

    vue.jsを使用してv-forからオブジェクトの配列内のいくつかのフィールドを計算します

  8. 8

    文字列の配列をオブジェクトに変換して、それらのオブジェクトをキーと値のペアに分割できるようにするにはどうすればよいですか?

  9. 9

    カスタムオブジェクトを含む配列内の配列として変更全体を保存しようとしています

  10. 10

    javascriptまたはjqueryを使用して、localstorageストレージからそのオブジェクトを削除/削除できるように、localstorage内のオブジェクトのインデックスを取得しようとしています

  11. 11

    TSを使用して配列内の各オブジェクトに新しいフィールドを挿入しようとしています

  12. 12

    オブジェクト内のすべてのフィールドが存在するかどうかが不明なときに、オブジェクト配列を介してマッピングするにはどうすればよいですか?

  13. 13

    配列内のmutilオブジェクトをlodashとどのようにマージしますか?

  14. 14

    配列内にネストされたオブジェクトの状態を更新しようとしています... jsonデータを使用して

  15. 15

    オブジェクトの配列を操作しようとしています

  16. 16

    reactを使用してオブジェクトの配列内の既存のオブジェクトを更新しようとしています

  17. 17

    model.fit()を実行しようとしたときのValueError-:NumPy配列をTensorに変換できませんでした(サポートされていないオブジェクトタイプnumpy.ndarray)

  18. 18

    Unityでクリックしたときにゲームオブジェクトの色を変更するにはどうすればよいですか?

  19. 19

    groupbyオブジェクトの新しい列に値を割り当てようとしたときのNotImplementedError

  20. 20

    角度のある配列からオブジェクトの一意のリストを取得しようとしています

  21. 21

    配列内のオブジェクトは、prepareForSegueを介して追加しようとすると置き換えられます

  22. 22

    Php:返された「参照」を操作したときの配列とオブジェクトの違い

  23. 23

    React Native:カスタム関数をオブジェクトの配列に適用し、変更された配列を追加のフィールドとともにJavascriptで返すにはどうすればよいですか?

  24. 24

    React Native:カスタム関数をオブジェクトの配列に適用し、変更された配列を追加のフィールドとともにJavascriptで返すにはどうすればよいですか?

  25. 25

    JSはループごとに配列内のオブジェクトを変更します

  26. 26

    リストからオブジェクトを削除しようとしている間の反復中の同時変更

  27. 27

    新しい着信オブジェクトから変更されていない元のオブジェクトのプロパティを保持するオブジェクトの配列からマージされたオブジェクトを作成するにはどうすればよいですか?

  28. 28

    オブジェクトのリストからデータを取得しようとしています

  29. 29

    配列内のオブジェクトを区別しようとしています

ホットタグ

アーカイブ