当前位置:首页 > VUE

vue实现目录列表

2026-02-18 20:25:42VUE

使用 Vue 实现目录列表

数据驱动渲染

通过 Vue 的 v-for 指令动态渲染目录结构,数据格式建议采用嵌套数组或树形结构。例如:

data() {
  return {
    menuItems: [
      { title: '首页', path: '/' },
      { 
        title: '产品', 
        children: [
          { title: '产品A', path: '/product/a' }
        ]
      }
    ]
  }
}

递归组件实现

对于多级目录,需创建递归组件。新建 MenuItem.vue 组件:

<template>
  <li>
    <router-link v-if="item.path" :to="item.path">{{ item.title }}</router-link>
    <span v-else>{{ item.title }}</span>
    <ul v-if="item.children">
      <menu-item 
        v-for="child in item.children" 
        :key="child.title" 
        :item="child" 
      />
    </ul>
  </li>
</template>

<script>
export default {
  name: 'MenuItem',
  props: ['item']
}
</script>

样式优化

添加基础样式增强可读性:

vue实现目录列表

ul {
  list-style-type: none;
  padding-left: 1em;
}
li {
  margin: 0.5em 0;
  position: relative;
}
a {
  text-decoration: none;
  color: #2c3e50;
}
a:hover {
  color: #42b983;
}

动态激活状态

结合 Vue Router 实现当前路由高亮:

computed: {
  isActive() {
    return this.$route.path === this.item.path
  }
}

模板中添加动态 class:

vue实现目录列表

<router-link 
  :class="{ 'active': isActive }" 
  :to="item.path"
>
  {{ item.title }}
</router-link>

交互功能扩展

添加折叠/展开功能:

data() {
  return {
    isOpen: false
  }
},
methods: {
  toggle() {
    this.isOpen = !this.isOpen
  }
}

模板中绑定点击事件:

<span @click="toggle" v-if="item.children">
  {{ item.title }} {{ isOpen ? '▼' : '▶' }}
</span>

标签: 目录列表
分享给朋友:

相关文章

vue 实现列表多选

vue 实现列表多选

Vue 实现列表多选的方法 使用 v-model 绑定数组 通过 v-model 绑定一个数组,可以自动处理多选逻辑。适用于复选框(checkbox)场景。 <template> &…

vue实现列表滚动

vue实现列表滚动

Vue 实现列表滚动的方法 使用 CSS 实现滚动 通过 CSS 的 overflow 属性可以轻松实现列表滚动。在 Vue 的模板中,为列表容器添加 overflow-y: auto 或 overf…

vue 实现商品列表

vue 实现商品列表

实现商品列表的基本结构 在Vue中实现商品列表,通常需要创建一个组件来展示商品数据。可以使用v-for指令循环渲染商品列表,并通过数据绑定动态显示商品信息。 <template> &…

vue实现目录列表

vue实现目录列表

实现目录列表的基本思路 在Vue中实现目录列表通常涉及动态渲染嵌套结构的数据,结合递归组件或v-for循环处理层级关系。以下是两种常见实现方式: 方法一:使用递归组件 递归组件适合处理未知深度的嵌套…

vue 实现目录树

vue 实现目录树

Vue 实现目录树的方法 在 Vue 中实现目录树功能可以通过多种方式完成,以下是一些常见的方法: 使用递归组件实现目录树 递归组件是 Vue 中实现树形结构的常见方法,通过组件自身调用自身来实现多…

vue实现列表排序

vue实现列表排序

实现列表排序的方法 在Vue中实现列表排序可以通过多种方式完成,以下是几种常见的方法: 使用JavaScript的sort方法 在Vue的methods中定义一个排序函数,利用JavaScript…