<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="vue.js"></script>
<style>
a{text-decoration: none;color: #333;}
</style>
</head>
<body>
<div id="app">
<ul>
<li v-for="(item,index) in list">
<a href="javascript:void(0)" @click="showTitle(item)"><b v-show="item.flag == true">-</b><b v-show="item.flag==false">+</b>{{item.name}}</a>
<ul v-show="item.flag">
<li v-for="itm in item.child">{{itm.name}}</li>
</ul>
</li>
</ul>
</div>
<script>
let app = new Vue({
el: '#app',
data: {
lists: ['前端','后端','ui设计'],
list: [
{name: 'web前端', flag: true,child: [{name: 'html'},{name: 'css'},{name: 'js'}]},
{name: '后端',flag: false,child: [{name: 'C++'},{name: 'C#'},{name: 'java'}]},
{name: 'ui设计',flag: false,child: [{name: 'PS'},{name: 'AE'},{name: 'AI'}]},
]
},
methods: {
showTitle(item){
//点击一个目录其他目录隐藏
for(var i=0;i<this.list.length;i++){
this.list[i].flag = false;
}
item.flag = true;
//点击一次显示子目录,再次点击隐藏子目录
//item.flag = !item.flag;
}
}
})
</script>
</body>
</html>