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 アルファ透明度 (完全コレクション)
クラシックな色の組み合わせの中でも、黒、白、グレーの時代を超えた魅力を否定できる人はおそらくいないで...
JavaScript厳密モードが 8 進数をサポートしていないという問題に関して、まず、 Java...
Microsoft は T4 テンプレートを提供していますが、使用するのが非常に難しいと思います。ス...
目次一般的な配列メソッド配列要素の追加と削除配列ヘッダーの操作配列の末尾を操作する任意の場所に追加ま...
この記事の例では、jQueryのカスタム虫眼鏡効果の具体的なコードを参考までに共有しています。具体的...
1. mysqlをインストールします。 udo apt-getでmysql-serverをインストー...
ネットワークの高可用性を実現するには、複数のネットワーク カードを仮想ネットワーク カードにバインド...
1. div css マウスの手の形は cursor:pointer; です。 2. HTML の相...
非常に便利な機能group_concat() について、マニュアルには次のように記載されています: ...
目次1. ファイアウォールの現在の状態を確認する2. ファイアウォールサービスを開始する3. ファイ...
前回の記事「Docker コンテナの UID と GID を理解する」では、Docker コンテナ内...
MySql データベースのサブクエリ:サブクエリ: 選択クエリ ステートメント内に別の選択ステートメ...
シナリオ:テーブル内のデータは、同期ツールを使用して他のデータベースと同期する必要があり、増分同期に...
1. VMware Workstation 64バージョンをダウンロードするhttps://www....
最近、CSS3に関する知識や記事をたくさん読んできましたが、CSS3はとても便利に使えると思います。...