当前位置:首页 > JavaScript

js实现四层树形菜单

2026-04-04 21:20:49JavaScript

实现四层树形菜单的方法

数据结构设计

使用嵌套对象或数组表示树形结构,每个节点包含idlabelchildren等属性。例如:

const treeData = [
  {
    id: 1,
    label: '一级菜单',
    children: [
      {
        id: 11,
        label: '二级菜单',
        children: [
          {
            id: 111,
            label: '三级菜单',
            children: [
              { id: 1111, label: '四级菜单' }
            ]
          }
        ]
      }
    ]
  }
];

递归渲染组件

通过递归组件渲染每一层菜单,Vue/React示例:

// React组件示例
function TreeNode({ node }) {
  return (
    <li>
      {node.label}
      {node.children && (
        <ul>{node.children.map(child => <TreeNode node={child} />)}</ul>
      )}
    </li>
  );
}

样式控制

使用CSS控制缩进和展开状态:

.tree ul {
  padding-left: 20px;
}
.tree li {
  list-style-type: none;
  cursor: pointer;
}

交互功能实现

添加展开/折叠功能:

function toggleExpand(node) {
  node.isExpanded = !node.isExpanded;
  // 触发视图更新
}

动态加载优化

对于大数据量可采用懒加载:

js实现四层树形菜单

async function loadChildren(parentId) {
  const res = await fetch(`/api/menu?parent=${parentId}`);
  return res.json();
}

完整示例代码

// Vue组件示例
Vue.component('tree-menu', {
  props: ['node'],
  template: `
    <li>
      <span @click="toggle">{{node.label}}</span>
      <ul v-if="showChildren">
        <tree-menu v-for="child in node.children" :node="child"/>
      </ul>
    </li>
  `,
  data() {
    return { isExpanded: false }
  },
  computed: {
    showChildren() {
      return this.node.children && this.isExpanded
    }
  },
  methods: {
    toggle() {
      this.isExpanded = !this.isExpanded
    }
  }
})

标签: 四层菜单
分享给朋友:

相关文章

vue菜单tab实现

vue菜单tab实现

Vue 菜单 Tab 实现方法 使用动态组件切换内容 通过 Vue 的 component 动态组件结合 v-for 渲染菜单项,点击时切换显示内容: <template> <…

vue实现联动菜单

vue实现联动菜单

实现联动菜单的基本思路 在Vue中实现联动菜单的核心在于数据绑定和事件监听。通过v-model绑定下拉菜单的值,利用watch或computed监听变化,动态更新下一级菜单的选项。 基础实现方法 创…

js实现菜单导航

js实现菜单导航

实现基础菜单导航结构 使用HTML和CSS创建菜单的基本结构,再通过JavaScript添加交互功能。HTML部分通常使用<ul>和<li>标签构建层级: <nav i…

实现树形菜单vue

实现树形菜单vue

实现树形菜单的Vue方案 递归组件实现 创建递归组件TreeMenu.vue,通过组件自身调用自身实现无限层级渲染: <template> <ul> <li…

vue  实现多级菜单

vue 实现多级菜单

实现多级菜单的基本思路 在Vue中实现多级菜单通常需要递归组件或动态渲染嵌套数据结构。核心是通过组件递归调用自身,或利用v-for遍历嵌套的菜单数据。 递归组件实现方式 定义菜单数据结构 数据格式…

vue树形菜单实现

vue树形菜单实现

Vue 树形菜单实现方法 使用递归组件实现树形结构 递归组件是 Vue 中实现树形菜单的常见方式。通过组件自身调用自身,可以轻松处理嵌套的树形数据。 <template> <u…