nextTickのVUE

todo简介:

VUEフレームは、彼が角度の利点を組み合わせ、非常に人気があり、MVVMフレームを結合双方向のデータを形成するように反応親しみやすい軽量の特性を有しています。私はそれを使用することを好みます。我々はVUEとき、私たちはしばしば方法がこれです使用します。$ NextTick、私はあなたが使用していると信じています。データ収集を行った後、新しいビューの次の操作または他の操作の必要性は、DOMを取得しないことが判明したときに好きなシーンです。唯一のデータモデルを変更完了割り当ては完全なビューの更新ではありませんので。この時点で、私たちは、この章で説明する機能を使用する必要があります。

例えば:

新しい新しいヴュー({ 
  EL: '#app' 
  データ:{ 
    []:リスト
  }、
  マウント:機能(){
     これに.get()
  }、
  メソッド:{ 
    GET:機能(){
       これ。http.get $( ' / API / Articleこの記事は、でした)。その後、(関数は(RES){
         この .LIST = res.data.data.list
         @ REFリストは、UL要素を参照し、私は赤のliに最初の色が欲しい
     
      無効//以下の方法
この refs.list.getElementsByTagName $( 'リー')[0] .style.color = '赤'。})// $参考文献:①注
     
      
//以下の方法が有効である
     。この$ nextTick(()=> {。
      この。$ refs.list.getElementsByTagName( 'リー')[0] .style.color = '赤'})
     })
  } 
 }
})

私は、データモデルの属性リストに割り当てるデータを取得した後、私は赤に変わり、その色の最初の要素を見つけるために、UL李を引用したいと思いますが、実際には、これは誤りであるべきであり、我々はこの刑の執行であることを知っています、ULは以下の李なかった場合は、その割り当てはちょうど起こった、そして現在の更新ビュー層を引き起こしませんでしたしたがって、この場合には、VUEは、我々は次の更新操作を表示したい場合は、私達はちょうどこの。$ NextTickメソッドに渡された関数を実行する必要があり、$ nextTick方法を提供してくれ、VUEは、私たちを与えるだろうこの仕事をすることができません。

上記のコードは、両方を示しnextTick正しい使用法を

私は)(Vue.nextTickで必要ないとき

1. C Vueのライフサイクルフックを操作するreated()DOM機能はVue.nextTick()コールバック関数を配置する必要がありますそれは何ですか、その理由をされ、実際にはDOMのフックは任意のレンダリングをしなかったときに実行する()関数を作成し、DOM操作をし、この時点ではそれほどのVueに、ここでDOM操作をコードをJSに必ず、無駄に違いはありません。 nextTick()コールバック関数。され、対応するフック関数取り付けられたフック関数があるため、すべてのDOMおよびレンダリングを実装するために実行される完全なされ、この時点で任意のDOM操作は、フック関数には関係ありません。

2.データの変更後に行われ、この操作は時間のDOM構造を変更するとデータ変更の使用を必要とするアクションでは、この操作はVue.nextTick()コールバック関数を入れなければなりません。

原理:

データの変更を聞くときVUE更新DOMを非同期に実行され、(objeect.definePropertyを使用する)であるオープンキュー(非同期更新キュー)、そして同じ緩衝液中のイベントループで発生するすべてのデータ変更

あなたはvm.someData =「新しい値」を設定した場合、コンポーネントは、すぐに再描画されません。リフレッシュキューは、コンポーネントがイベントループになるときは次のアップデートで「カチカチ」。ほとんどの場合、私たちはこのプロセスを気にする必要はありませんが、あなたは少しトリッキーかもしれない何かを、行うには、更新DOMに基づいた状態にしたい場合。けれどもVue.jsは通常、DOMとの直接接触を避けるために、思考の「データ駆動型」の方法を使用する開発者を奨励し、時には我々はしなければなりません。更新DOM Vueのは、変更後のデータを待つ完了するためには、データ変更Vue.nextTick(コールバック)の直後に使用することができます。だから、更新後に呼び出されるコールバック関数は、完全なDOMがあります

ソース分析:

 

 

 

 

 

 

注①:

1、説明:VM $参考文献の目的は、すべてのサブコンポーネント(またはHTML要素)REFのホルダを登録されている;.

  用途:HTML要素、ref属性を追加し、JSでのVM $、参考文献のプロパティにより取得され;.

  取得:取得は、サブアセンブリの場合は、サブアセンブリを得て、データREFによって方法することができます。

2、ref属性を追加します。

<DIV ID = "アプリ"> 
    <h1とREF = "h1Ele">这是H1 </ H1> 
    <こんにちはREF = "HO"> </こんにちは> 

    <ボタン@クリック= "getref">获取H1元素</ボタン> 
</ div>

3、すべてのコンポーネントまたは登録REFの属性を取得

方法:{ 
    getRef(){ 
      // $参考文献から表しは、REF取得した属性値オブジェクト:h1ele DOM要素アセンブリまたは 
       にconsole.log(この$ refs.h1Ele.innerText。);
        この $のrefs.h1ele.styleを。 =色'赤'; // 変更されたHTML形成

       はconsole.log(この $のrefs.ho.msgを。); // 取得したデータ・コンポーネント 
       はconsole.log(この $のrefs.ho.testに。); //は、コンポーネントアプローチを取得
    } 
}

 

おすすめ

転載: www.cnblogs.com/wangtong111/p/11414213.html