這個問題困擾了我很久,甚至一度覺得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上面。。。
如果您知道怎么解決這個問題,還請您留言指點一二!
對於這篇博文如果您有更好/其他的思路、辦法,也歡迎您留言!
望能不吝賜教!~~ 謝謝!~~~