一、在template中使用v-for沒有效果
如上面代碼所示想循環展示子菜單時使用的是v-for命令,但執行后卻沒有效果,子菜單的數據獲取不到。
原因:v-for是循環指令,它返回多個值,而這里的template是根節點,根節點只有一個,根節點不能有多個,所以v-for寫在根節點上就有問題,行不通。
解決:在其外面可以包裹一層div,使其不是根節點即可。
如此圖給template外添加了一層div,即可解決上述問題。
二、從此代碼上可以看到一個問題:這一個組件怎么會有多個template嵌套?
解釋:上面代碼中的第二個template其實相當於自帶隱藏屬性的容器,這里也可以用div來代替,但div的話就會被渲染成元素。
第二個template可以放執行語句,最終編譯后不會被渲染成元素。一般常和v-for v-if 和v-show一起結合使用,這樣會使得整個html結構沒有那么多多余的元素,整個結構會更加清晰。