亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    淺談Vue中v-for,key取值影響過渡效果和動畫效果(代碼詳解)

    之前的文章《教你怎么使用Vue實現(xiàn)動畫效果(附代碼)》中,給大家介紹了怎么使用Vue實現(xiàn)動畫效果。下面本篇文章給大家了解一下淺談Vue中key取值影響過渡效果和動畫效果,有需要的朋友可以參考一下,希望對你們有幫助。

    淺談Vue中v-for,key取值影響過渡效果和動畫效果(代碼詳解)

    關(guān)于Vue.jsv-for,key的順序改變,影響過渡動畫表現(xiàn)

    關(guān)于Vue.jsv-for,key的取值,影響過渡動畫表現(xiàn)這個問題是在寫Message組件出現(xiàn)的,先看代碼部分

    子組件:

    <!-- Notice: --> <transition :name="transitionName" @enter="enter" @leave="leave">   ...... .. </transition> <!-- JS: --> <script>   export default {     methods: {       enter(e) {         e.style.height = e.scrollHeight + "px";       },       leave(e) {         e.style.height = 0;       },     },   }; </script> <!-- CSS: --> <style>   transition: all 0.2s ease-in-out; </style>

    父組件:

    <notice v-for="(item, index) in notices" :key="index">   ...... </notice>

    JS

    data() {     return {       notices: []     };   },   //notices 新增的時候自動加入定時器來移除   setTimeout(() => {     let index = 0 //這里假設(shè)我已經(jīng)取得了移除的 index索引, 可能不是依次的123456     this.notices.splice(index, 1);   }, time) //time 為傳入的隨機不等值

    理論上當某一個子組件被移除時,他會有一個流暢的高度從 1 0 到過度動畫,但是不然,每次移除時,動畫每次只會應(yīng)用到最后一個。百思不解,各種js,css實現(xiàn)都不是很理想。依然一卡一卡的。

    又去官網(wǎng)把文檔翻了一遍。 找出了問題所在。for遍歷的時候,有一個值很重要:keykey取值為Number時,每次數(shù)組被改變,dom會重新渲染,所以動畫每次只會影響最后一個。

    key取值為String時,每次數(shù)組被改變,dom則默認用“就地復用”策略

    所以把key改為String時,則就是我想要當結(jié)果,流暢的依次性的執(zhí)行了動畫,完美官網(wǎng)的例子https://cn.vuejs.org/v2/guide/list.html#key

    這里需要注意的是,key的取值為StringNumber,所以測試時key值為了避免不重復,應(yīng)該取值為隨機的不重復string/number, 不要使用默認的index 。

    [完]

    推薦學習:JavaScript視頻教程

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號