1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
    7. <title>Document</title>
    8. <script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
    9. </head>
    10. <body>
    11. <div id="app">
    12. <ul>
    13. <li v-for="(item,index) in getlist" :key="index">
    14. <span @click="onclick(index)">
    15. {{arr.includes(index) ? '收缩' : '展开'}}
    16. </span>
    17. <p v-show="arr.includes(index)">我是展开的内容{{index}}</p>
    18. </li>
    19. </ul>
    20. </div>
    21. </body>
    22. </html>
    new Vue({
      el:"#app",
      data() {
        return {
          getlist:['1','2','3','4'],
          arr:[]
        }
      },
      methods: {
        onclick(index) {
          let isHas = this.arr.findIndex(i => i == index);
          isHas > -1 ? this.arr.splice(isHas,1) : this.arr.push(index)
        }
      }
    })
    

    GIF.gif