效果圖如下:

首先用v-for去遍歷數(shù)組,將index取出,然后將這個(gè)數(shù)組進(jìn)行渲染。
拿到index之后,我們需要寫一個(gè)方法,對(duì)這個(gè)index進(jìn)行一些處理。
我們這里可以在這個(gè) “<” icon中去設(shè)置一個(gè)方法,比如 openList(index),別忘記將index傳入
在data中隨意建立一個(gè)數(shù)組,比如 arr: []
這樣在methods中我們可以這樣去寫這個(gè)方法:
openList(index) {
let _index = this.arr.indexOf(index);
if (_index > -1) {
this.arr.splice(_index, 1)
} else {
this.arr = [index]
}
}
我第一次想法是將每次點(diǎn)擊不同的index都添加進(jìn)數(shù)組里,這樣可以同時(shí)展開多個(gè)數(shù)組,如下
首先設(shè)置一個(gè)變量,將它賦值成這個(gè)數(shù)組第一次出現(xiàn)這個(gè)index的位置。
之后判斷,如果這個(gè)位置有元素,那么indexOf的返回值一定是大于-1的,這個(gè)時(shí)候就應(yīng)該在數(shù)組中刪除這個(gè)元素,也就是刪除這個(gè)元素第一次出現(xiàn)的位置上所在的元素。
之后用arr.push(index)將這個(gè)元素push進(jìn)數(shù)組中,
在頁(yè)面page中v-show就可以這樣去判斷 v-show=" arr.indexOf(index) > -1";
但是在小程序中,目前不支持在wxml中實(shí)現(xiàn)indexOf方法,所以只能退而卻其次,每次只能打開一個(gè)頁(yè)面,
這樣就直接將arr賦值成傳下來(lái)的index,
這樣頁(yè)面page中的v-show就這樣去判斷 v-show=" arr.length > 0 && arr[0] = index"
這樣就可以實(shí)現(xiàn)上面的效果