vueでthisを通ります.refs操作DOM時報undefined

1683 ワード

vueでthisを通ります.refs操作DOM時の注意事項
axiosリクエストの完了時にバインディングを取得するrefはundefined
vueでthis.$nexttick()関数の使用
  • VueにおけるnextTickは、VueにおけるDOMの非同期更新
  • に関する.
  • Vue実装応答式は、データが変化する直後にDOMが変化するのではなく、一定のポリシーでDOMの更新を行う
  • である.
  • $nextTickは、次回のDOM更新サイクルが終了する後に遅延コールバックを実行し、データを修正した後に$nextTickを使用すると、コールバックで更新後のDOM
  • を取得することができる.
    axios({
    		method: 'get',
    		url: 'api',
    		params: {
    			key: value
    		},
    		responseType: 'json'
    	}).then(response => {
    		//     
    	                  ref            undefined
     	this.refs.key = undefined
          axios        dom             ref         
    	    :
    	this.$nextTick(function(){
    	             	this.refs.key  (  :           ,     this  )
        })
    	}).catch(error => {
    		//     ,
    	});
    

    注意:refバインドを確立したDOMはvue(v-for)によってレンダリングされます.