序文少し前に、興味深い問題を目にしました。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 が存在しません」という問題の解決方法
Nginx は同じドメイン名で構成されており、http と https の両方でアクセスできます。証...
構造とプレゼンテーションを分離するもう 1 つの重要な側面は、セマンティック マークアップを使用して...
以下のように表示されます。 nsenter -t 1 -m -u -n -i sh -c "...
以下に示すプラス記号の効果を実現するには: この効果を実現するには、div 要素だけが必要です。 b...
目次オブザーバーパターンVue パス値最初のステップは、main.jsにバスを登録することです。 2...
目次1. パノラマII. 背景1. 反応: プロフェッショナル2. ビュー: 凡例3. 技術的な思考...
目次1. サブクエリとは何ですか? 2. サブクエリはどこに表示されますか? 3. Whereサブク...
取引特性1. アトミック性: トランザクションの開始後、すべての操作が完了するか、まったく実行されな...
Linux でファイルを見つけたいのに、その場所がわからないことがよくあります。次のコマンドを使用し...
目次1. ルーティングアニメーション2. グループクエリとスタガー1. ルーティングアニメーションル...
目次スロットルと手ぶれ防止コンセプト:違いスロットリングの実装スロットル機能手ぶれ補正の実装手ぶれ防...
MySQL Community Server 5.7.18 の配布パッケージには .ini ファイル...
1. ユーザーを作成します。注文: 'password' によって識別される ...
目次デバウンススロットル要約するデバウンス定義: スクロール イベントなど、短時間に連続してトリガー...
方法1: SET PASSWORDコマンドを使用する MySQL -u ルート mysql> ...