鍍金池/ 問(wèn)答/HTML/ vue添加路由動(dòng)畫(huà)導(dǎo)致組件方法失敗。

vue添加路由動(dòng)畫(huà)導(dǎo)致組件方法失敗。

1:?jiǎn)栴}描述
想給router-view添加 切換時(shí)的動(dòng)畫(huà)效果 于是給<router-view>標(biāo)簽上添加 <transition>屬性!但是發(fā)現(xiàn)加完這個(gè)屬性后 切換路由后發(fā)現(xiàn) 要切換到的組件里的方法里觸發(fā)初始化的函數(shù)失效了 進(jìn)查找發(fā)現(xiàn)時(shí) 函數(shù)運(yùn)行時(shí)dom元素沒(méi)有加載到頁(yè)面之中!但是如果不加路由動(dòng)畫(huà)則正常獲取沒(méi)有問(wèn)題!

2:沒(méi)有路由動(dòng)畫(huà)時(shí)候的截圖如下

clipboard.png
再要切換的組建之中 方法掛在mounted上截圖如下

clipboard.png
是可以獲取相應(yīng)dom并可以完成初始化的!

當(dāng)加入路由后

clipboard.png
在要切換組件中就無(wú)法獲取到頁(yè)面中的dom了

3:在網(wǎng)上搜了很多可能是因?yàn)樗阉麝P(guān)鍵詞的問(wèn)題 答案一般都是說(shuō)需要給函數(shù)中添加$nextTick 但是添加后沒(méi)有效果,我的理解是nextTick是監(jiān)聽(tīng)數(shù)據(jù)變化后修改 但是我這個(gè)目前還是靜態(tài)頁(yè)面不涉及到數(shù)據(jù)的變動(dòng)并且沒(méi)有路由動(dòng)畫(huà)之前都沒(méi)有問(wèn)題!后來(lái)我在切換組件的函數(shù)中添加了 一個(gè)定時(shí)器 在定時(shí)器后是可以獲取出相關(guān)的dom數(shù)量了 但是第一寫(xiě)定時(shí)器感覺(jué)不是正確解決辦法第二就是在定時(shí)器執(zhí)行之前頁(yè)面樣式還是出現(xiàn)錯(cuò)誤!

請(qǐng)大家?guī)兔纯丛趺唇鉀Q一下 謝謝!

回答
編輯回答
歆久

兩種辦法
1.看下你定義的動(dòng)畫(huà)多少s。然后setTimeout用在多少s后在調(diào)用
2.在methods里面定義一個(gè)函數(shù)去獲取你要的dom,然后在過(guò)渡動(dòng)畫(huà)加上JavaScript鉤子,在進(jìn)入完成后在調(diào)用函數(shù)即可

clipboard.png

2018年7月10日 20:59