Vue での this.$set の動的データバインディングのケーススタディ

Vue での this.$set の動的データバインディングのケーススタディ

インターネット上の this.$set の説明はわかりにくいと感じます。単一データ、オブジェクト、配列、json データのバインディングについてまとめます。

では、早速コードを見てみましょう。

<テンプレート>
  <div>
    <!-- 単一データ -->
    <button @click="text0a">テキスト0</button>
    <p>テキスト0: {{text0}}</p>
    <!-- オブジェクト -->
    <button @click="textObja">テキストオブジェクト</button>
    <p>textObj.text1: {{textObj.text1}}</p>
    <!-- 配列 -->
    <button @click="textArra">テキストArr</button>
    <p>テキストArr[1]: {{テキストArr[1]}}</p>
    <!-- json データ -->
    <button @click="textJsona">テキストJson</button>
    <p>textJson[1].t5: {{textJson[1].t5}}</p>
  </div>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
  データ() {
    戻る {
      テキスト0: ''、
      テキストオブジェクト: {},
      テキスト配列: [],
      テキストJson:[
        {t0: ''},
        {t4: ''},
        {t7: ''},
      ]
    }
  },
  メソッド: {
    テキスト0a: 関数() {
      vm = this とします
      text100 = 'efghjk' とします
      vm.$set(vm,'テキスト0',テキスト100) 
      //vm.$set(vm,'text0','efghjk') と同等
    },
    テキストオブジェクト: 関数 () {
      vm = this とします
      textObj100 = {とする
        テキスト1: '123',
        テキスト2: '456'
        }
      vm.$set(vm.textObj,'text1',textObj100.text1) 
      //これはvm.$set(vm,'textObj',textObj100)と同等です
    },
    テキストArra: 関数() {
      vm = this とします
      textArr200 = ['a1','a2','a3'] とします。
      vm.$set(vm,'textArr',textArr200)
    },
    テキストJSONA: 関数() {
      vm = this とします
      textJson300 = [ とします。
        {t1: 't1'、t2: 't2'、t3: 't3'},
        {t4: 't4'、t5: 't5'、t6: 't6'}、
        {t7: 't7'、t8: 't8'、t9: 't9'},
      ]
      vm.$set(vm.textJson[1],'t5',textJson300[1].t5) 
      //これは vm.$set(vm,'textJson',textJson300) と同等です
    }
  }
}
</スクリプト>
<スタイル>
</スタイル>

補足: Vue は $set を使用してデータの属性を動的に設定します

実際の開発プロセスでは、モデルをフォーム要素にバインドするときに、バインドされた要素の属性がバックグラウンド データに基づいて動的に生成されます。従来の割り当て方法を使用すると、ビューを更新することはできません

使用する必要がある

this.$set(データ名、キー名、キー値)
エクスポートデフォルト{
 データ:{
  //まず空のオブジェクトformObjectを定義します:{},
  配列リスト:[],
 },
 マウント() {
  この.initPage()
 },
 方法:{
  initPage(){
   this.$store.dispatch(namespace/callData).then(res=>{
    // データのキーと値を設定する
    res.data.forEach(item=>{
     // ❗❗❗❗❗ this.formObject[item.name] = item.value // ❗❗❗❗ このメソッドはビューを更新できません this.$set(this.formObject, item.name, item.value) // ✅✅✅✅ビューを更新できます})
   })
   // 配列を変更します this.$store.dispatch(namespace/callData).then(res=>{
    // データのキーと値を設定する
    this.$set(this.arrayList,0,(res.data)[0].id) ✅✅✅✅ビューを更新できます})
  }
 }
}

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Vue.set() と this.$set() の使い方と違い
  • Vue エラー TypeError の解決方法: this.$set は関数ではありません
  • Vue.set() this.$set() はビューの更新と考慮をトリガーします
  • Vue ソースコードから Vue.set() と this.$set() を解析する
  • Vue での this.$set の使用に関する詳細な説明

<<:  MySQL の nvl() 関数に似た ifnull() 関数についての簡単な説明

>>:  MySQL フルテキスト検索の中国語ソリューションとサンプルコード

推薦する

Linux (CentOS7) に Tomcat をインストールし、Tomcat をスタートアップ項目として設定します (tomcat8 を例に挙げます)

目次TomcatをインストールするTomcat 圧縮パッケージをダウンロードTomcatには3つの主...

MySQL インポート csv エラーの 4 つの解決策

これは今日私が踏んだ4つの落とし穴を記念したものです...落とし穴1:地元のせいエラー:エラー 39...

int(3)とint(10)の値の範囲はmysqlで同じですか?

目次質問:答え:現実:知識ポイント結論は:要約する質問: MySQLフィールド、unsigned i...

MySQL で重複レコードをクエリして削除する方法の完全なガイド

序文この記事では主に、MySQL で重複レコードをクエリして削除する方法を紹介します。参考と学習のた...

Angular 依存性注入の説明

目次概要1. 依存性注入2. Angularの依存性注入フレームワーク概要依存性注入: デザインパタ...

静的ウェブサイトをRSSに変換するツール

<br /> この記事は allwebdesignresources.com から Ra...

ボタンに醜い灰色の枠線が付いています。これを削除するにはどうすればよいですか?

ダイアログをクロージャで使用し、右上隅の向こう側に閉じるボタンがあるダイアログを描画しました。ボタン...

Vueタブとキャッシュページを切り替えるいくつかの方法

目次1. 切り替え方法2. タブを動的に生成する3. キャッシュコンポーネント3.1 キープアライブ...

Windows 64 ビット版の MySQL 8.0.15 インストール チュートリアル

まず公式サイトにアクセスしてダウンロードし、MySQLダウンロードをクリックします。 ダウンロードし...

Zabbixのインストールと展開の詳細な説明

序文Zabbix は最も主流のオープンソース監視ソリューションの 1 つです。導入自体は難しくありま...

YUM を使用して Linux (CentOS 7) に MySQL 5.7.18 をインストールする方法の詳細なチュートリアル

このプロジェクトでは MySQL を使用する必要があります。これまで Windows では常に確実に...

DockerとFastDFSのインストールコマンドと使い方の詳しい説明

Dockerの機能1) すぐに始められるユーザーがプログラムを「Docker 化」するには、わずか数...

Linux ネットワークプログラミング機能の簡単な分析

目次1.ソケットを作成する2. ソケットをバインドする3. 聞き手を作る。聞く4. 接続が受け入れら...

MySQL データベース テーブルとデータベース パーティショニング戦略

まず、テーブルを分割する必要がある理由について説明します。データシートが数百万に達すると、1 回のク...

VueはBaidu Mapsを使用して都市の位置特定を実現

この記事では、参考までに、Baidu Mapsを使用して都市の位置特定を実現するVueの具体的なコー...