序文少し前に、興味深い問題を目にしました。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 が存在しません」という問題の解決方法
CSS 疑似要素を使用して要素を制御する場合、一部の要素のスタイルを変更する必要があることがよくあり...
開発プロセス中に、MySQL データベースを復元した後にデータベース データに文字化けが発生した場合...
LinuxにMySQL 8.0.25をインストールするための最新のチュートリアルを参考にしてください...
目次序文RMの後には希望はあるのでしょうか?最前線を使ってファイルを取得するextundeleteを...
ウェブページに403 Forbiddenと表示されるNginx (yum インストール ログは通常 ...
1. コマンドの紹介nl (行数) は指定されたファイルに行番号を追加し、標準出力に書き込みます。フ...
序文React 16から、子コンポーネントで発生したエラーを捕捉し、エラーログを記録し、ダウングレー...
MySQL はよく使われるオープンソースのデータベース ソフトウェアですが、初めてのユーザーにはあま...
今日は、CSS 3.0 で実装されたネオン ボタン アニメーション効果を紹介します。効果は次のとおり...
良いアイデアを見つけたので記録しました。私は以前、スクロール効果を実現するためにjQueryを使用し...
目次ネットワーク情報ホスト名を変更するDNSドメイン名解決ネットワーク関連コマンドファイアウォール暗...
この記事の例では、ライトスイッチ効果を実現するためのjsの具体的なコードを参考までに共有しています。...
目次1. SC テーブルを挿入または変更するときに、テスト スコアが 0 ~ 100 の範囲外の場合...
今日は何もすることがなかったので、いくつかのツール(オンラインとクライアント)、よく使用する URL...
序文explain コマンドは、クエリ オプティマイザーがクエリの実行を決定した方法を確認する主な方...