Vue での this.$set の使用背景: フロントエンド プロジェクトを書いていたとき、バックエンドから json オブジェクトが提供され、それをページ上にレンダリングしました。しかし、私自身のニーズにより、返されたオブジェクトにフィールドを追加したいので、フィールドをプッシュします。フィールドは追加されますが、ページのレンダリングは変わりません。後で、応答がないことに気が付きました。この新しいフィールドをレスポンシブにしたい場合は、this.$set を使用してデータを挿入する必要があります。 Vue のデータでオブジェクトまたは配列 (配列内の値はオブジェクト) が宣言または割り当てられている場合、オブジェクトに新しいプロパティを追加してこのプロパティの値を更新しても、ビューは更新されません。 使用
ここに小さな例を示します。 オブジェクトにageプロパティを追加し、応答的に変更する <テンプレート> <div class="text"> <p>{{リスト}}</p> <button @click="add">年齢++</button> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ データ(){ 戻る { リスト:{ 名前: "張三"} } }, メソッド: { 追加(){ if(!this.list.age){ // age属性がない場合は、age属性を追加します this.list.age=18 }それ以外{ this.list.age++ } console.log(このリスト) } } } </スクリプト>
データは確かに追加されていますが、ページは age プロパティをレスポンシブにレンダリングしません。 追加されたデータが応答性があることがわかります。 なぜレスポンシブなのか?よく見ると、this.$set に get age メソッドと set age メソッドが追加されていることがわかります。これがレスポンシブである理由です。 分析するVue のレスポンシブ原則は、JavaScript オブジェクトがデータ オプションとして Vue インスタンスに渡されることです。Vue はこのオブジェクトのすべてのプロパティを走査し、Object.defineProperty を使用してこれらすべてのプロパティをゲッター/セッターに変換します。これらのゲッター/セッターはユーザーには見えませんが、内部的には Vue が依存関係を追跡し、プロパティがアクセスされて変更されたときに変更を通知できるようにします。ここで注意すべき点は、コンソールにデータ オブジェクトを出力するときに、ブラウザーによって getter/setter のフォーマットが異なることです。次の図は公式ドキュメントからの抜粋です。 要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Zabbixを使用してOracleテーブルスペースの操作プロセスを監視する
>>: IE6 での PNG アルファ透明度 (完全コレクション)
目次1. パッケージ化コマンドを追加する2. パッケージ化されたコードを実行する3. パッケージ化し...
1. v-forでは常に:keyを使用するデータを操作する必要があるときにプログラムを一定かつ予測可...
<br />原文: http://uicom.net/blog/?p=762 Faceb...
新しいコンピューターに変更したので、すべての環境を新しいコンピューター上で設定する必要があります。ふ...
目次まず結論から質問解決Promiseを使用してコールバック関数をカプセル化する要約するまず結論から...
1. 静的ページとは、Web ページ内に HTML タグのみが含まれるページです。WEB 開発者がこ...
目次1. MySQL 8.0.18のインストール2. 環境変数を設定する3. 接続テスト1. MyS...
目次序文いくつかの一般的なビット操作ビットAND (&)ビットOR (|)ビット否定(~)マ...
この記事では、主にnginxのフロントエンドとバックエンドに同じドメイン名を設定する方法を紹介し、皆...
I. はじめに1: SSL証明書私のドメイン名は Tencent Cloud にあります。第 3 レ...
Ubuntu 1804 への MySQL 5.7 のインストールについて詳しく紹介します。 MySQ...
Keepalive は Vue プロジェクトでのキャッシュによく使用され、基本的な要件を満たすのに非...
目的: ステーションAをステーションBのセカンダリディレクトリとして扱うのように: http://w...
目次シングルスレッド非同期シングルスレッドしかし、開発中にネットワーク リクエストやスケジュールされ...
目次識別子の長さ制限権限テーブルの範囲フィールドの長さ制限データベースとテーブルの数の制限テーブルサ...