Vueの-----これ。$ nextTick()

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、{})。
      } 
    } 
}

 

おすすめ

転載: www.cnblogs.com/ckmouse/p/11493618.html