序文少し前に、興味深い問題を目にしました。Vue のデータが変更された後に、ビューを同期的に更新するにはどうすればよいでしょうか? 検索してみましたが、問題の解決策は見つかりませんでした。ソース コードからしか解決策を見つけることができませんでした。 理由Vue でデータを変更した後、ビューが同期的に更新されないことは誰もが知っています。 vue インスタンスが初期化された後、データはレスポンシブ オブジェクトに設定されます。this.xxx = 1 を実行すると、このレスポンシブ オブジェクトのセッターがトリガーされます。セッターでは、xxx にサブスクライブしているすべてのサブスクライバーに通知するための更新がトリガーされます。ただし、このトリガー更新は同期的ではなく、すべてのウォッチャーをキューに追加し、nextTick 後にビューを更新します。 そのため、vue はビューを同期的に更新できません。 回避策原因がわかれば、必ず解決策を見つけることができます。 ビューは nextTick で更新されるため、このときにビューを更新するメソッドを実行する必要があります。データが変更されたときにこのメソッドを手動で実行すれば、ビューを同期的に更新するという目的を達成できます。 ソース コードを理解すると、実行されるメソッドは watcher.run() であることがわかります。では、このメソッドを取得するにはどうすればよいのでしょうか。 これをすぐに理解したい場合は、Vue.js Technology Unveiledを読むことをお勧めします。 これをコンソールに出力してみましょう run メソッドは _watcher オブジェクトのプロトタイプで見つかるため、問題は解決します。 xxx = 1; this._watcher.run() 上記のコードを実行し、データを更新した後にビューを手動で更新して、同期効果を実現します。 より良い解決策ビューを同期更新したいときに、毎回 this._watcher.run() を追加するのは面倒です。そこで、this.xxx = 1 以降のビューの同期更新をサポートするプラグインを作成しました。 このプラグインの原理は非常にシンプルです。コンポーネント オプションに、データに似たオプション syncData を追加します。次に、それをデータに配置します。create フックが呼び出されると、この部分のデータが再びハイジャックされます。syncData のデータが変更されると、_watch.run() が自動的にトリガーされ、ビューが同期的に更新されます。 プラグインアドレス: GitHubアドレス 追記正直に言うと、このプラグインは役に立たないと思います。理論的には、このプラグインが解決できる問題はすべて $nextTick で解決できます。 Vue でデータ変更後にビューを同期する方法についての記事はこれで終わりです。Vue ビュー同期更新の関連コンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Centos7 に Nginx 統合 Lua サンプル コードをインストール
>>: MySQL をデプロイするときに発生する「テーブル mysql.plugin が存在しません」という問題の解決方法
目次遷移フック関数カスタム遷移クラス名遷移グループの使用まとめまずは例を見てみましょうコードは次のと...
序文私は Win7 を搭載した古いラップトップを持っています。古いシステムを維持しながら、同時に U...
今日は、MySQL データベースと SQL 標準 (および他のデータベース) の UPDATE ステ...
Linux 操作実験環境: Centos7 仮想マシンまず、共通ユーザーgubeiqingを作成しま...
質問から始めましょう5 年前、私が Tencent にいたとき、ページング シナリオでは MySQL...
translate(-50%,-50%) 属性:中央に配置するには、長さと幅の 50% だけ上と左...
CS: ...コードをコピーコードは次のとおりです。 *{マージン:0;パディング:0;リストスタイ...
目次1. 静的実装方法: 2. 第2のシミュレーション動的方法3. 3番目の動的データ方式4. 動的...
1. コマンドの紹介passwd コマンドは、ユーザー パスワード、アカウント ロック、パスワードの...
以下のように表示されます。 test コマンドはファイルが存在するかどうかを判断します。 ssh u...
docker-compose.ymlを作成し、次の内容を入力します。 バージョン: '3...
目次0. システムに付属するカーネルツリー1. 環境設定最初のステップステップ2 2. ソースコード...
目次Reactの公式サイトではライフサイクルの説明を見ることができます次に、ネストされたコンポーネン...
Mysqlページングの2つのパラメータ ユーザー制限 1,2 から * を選択 1 は検索する最初の...
CentOS7 のデフォルトのデータベースは mariadb ですが、mysql を使っている人も多...