Vueの-----これ。$ nextTick()
$ nextTick
Vue.nextTick()コールバックは、次の更新サイクルDOMの終了後に遅延を実行して、データを変更した後$ nextTickを使用し、あなたがコールバックで更新DOMを取得することができます(変更は、DOMは、()nextTickである後に発生した)
このメソッドは、アクションがデータが更新され、コールバックのDOMを取得してから出てレンダリングされます。このメソッドを使用して変更されたとき
Vue.nextTick()関数:次の更新サイクルDOMの終了後コールバックが実行される遅延。すぐにデータを変更した後、このメソッドを使用して、取得したDOM更新
Vue.nextTickは(次の2つの場合に使用する必要があります)
1.Vueは、DOM操作フックの()関数はVue.nextTick()コールバック関数を配置しなければならない、その理由は、実際にはDOMのフックは任意のレンダリングをしなかったときに実行する()関数を作成し、このされたライフサイクルを作成しました操作はとてもここでは、DOMの無駄、Vue.nextTickに動作することを確認JSコードのDOM()コールバック関数を実行するために等しいとき。対応するフック関数はフック関数が実行時にすべてのマウントDOMとレンダリングが完了しているので、この時点で任意のDOM操作がフック関数には関係しませんが、搭載されています。
2.データの変更後に行われ、この操作は時間のDOM構造を変更するとデータ変更の使用を必要とするアクションでは、この操作はVue.nextTick()コールバック関数を入れなければなりません。
例えばVUEプラグBScrollロール軸プラグイン
< divのクラス= "menuwrapper" REF = "menuwrapper" > < UL > < 李V-用= "itemgood財で" クラス= "メニュー項目" > < divのクラス= "goodsli" > < スパンクラス=」テキスト」> < スパンV-ショー= "itemgood.type> 0" クラス= "アイコン" :クラス= "クラスマップ[itemgood.type]" > </ スパン> {{itemgood.name}} </ スパン> </ DIV > </ 李> </ UL > </ DIV > エクスポートデフォルト{ 作成(){ axios.get( '../静的/ data.json')。次に、((応答)=> { this.goods = response.data .goods; この$ nextTick(()=> { this._initScroll(); }) }) }、 メソッド:{ _initScroll(){ 。this.menuScroll =新しいBScroll(この$のrefs.menuwrapper、{})。 } } }