[vue.js]如何在循環中對部分個體進行操作


這個問題困擾了我很久,甚至一度覺得vue.js真的是很讓人頭疼,可能也是因為我沒有接觸過太多前端模板的緣故。

搜到的方法試過以后覺得這個辦法最好,在這里做一個記錄。

 

總體思路:盡量遵從數據驅動的角度去處理。

具體方法:

① data里設定一個index不會取到的值例如 i:-1

② 綁定的methods中把index作為參數傳入函數,並將index值賦值給i

③ 通過index 與 i 之間的關系來作為判斷是否執行methods的依據

 

以我剛剛寫到的代碼為例

<html>

<li class="listblog-item" v-for="(item,index) in arrangeData[key][key2]">
                    
  <h3 @mouseover="beUnderline(index)" @mouseout="i=-1">

     <a v-bind:class="{ underline: index === i }" href="">{{ item.title }}</a>

  </h3>

</li>

<js>

data:{
  i:-1
},
methods:{
  beUnderline:function(index){   this.i = index }
}

以上代碼實現的功能是 移到某一個li里的標題上時,只有該li的標題增加一個class,其余都不增加

 

 

-----------------------分割線------------------------

最近我還遇到的其他問題有:

因為在自己做一個博客,需要對文章內容進行逆序排列顯示。比較特殊的是數據格式整理完大致是這樣的:

var list = {
    2017:{
        9:[1,2,3],   //1,2,3代表文章的信息,這里不寫全了,不會影響結果
        7:[1,2,3,4]
    },
    2016:{
        10:[1,2,3,4,5],
        9:[1,3]
    }
}

但是vue的v-for有點奇怪,無論我對象怎么排序,v-for出來的結果永遠是2016在2017上面,7在9上面。。。

 

如果您知道怎么解決這個問題,還請您留言指點一二!

對於這篇博文如果您有更好/其他的思路、辦法,也歡迎您留言!

望能不吝賜教!~~ 謝謝!~~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM