• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >vue > Vue.js 递归组件实现树形菜单(实例分享)

Vue.js 递归组件实现树形菜单(实例分享)

作者:caihg 字体:[增加 减小] 来源:互联网 时间:2017-05-30

本文主要包含vue 树形表格,vue.js组件,vue.js组件化,vue.js分页组件,vue.js父子组件等相关知识,caihg 希望在学习及工作中可以帮助到您

最近看了 Vue.js 的递归组件,实现了一个最基本的树形菜单。

项目结构:

main.js 作为入口,很简单:

import Vue from 'vue'
Vue.config.debug = true
import main from './components/main.vue'
new Vue({
 el: '#app',
 render: h => h(main)
})
</div>

它引入了一个组件 main.vue:

<template>
 <div class="tree-menu">
 <ul v-for="menuItem in theModel">
 <my-tree :model="menuItem"></my-tree>
 </ul>
 </div>
</template>
<script>
var myData = [
 {
 'id': '1',
 'menuName': '基础管理',
 'menuCode': '10',
 'children': [
 {
 'menuName': '用户管理',
 'menuCode': '11'
 },
 {
 'menuName': '角色管理',
 'menuCode': '12',
 'children': [
 {
 'menuName': '管理员',
 'menuCode': '121'
 },
 {
 'menuName': 'CEO',
 'menuCode': '122'
 },
 {
 'menuName': 'CFO',
 'menuCode': '123'
 },
 {
 'menuName': 'COO',
 'menuCode': '124'
 },
 {
 'menuName': '普通人',
 'menuCode': '124'
 }
 ]
 },
 {
 'menuName': '权限管理',
 'menuCode': '13'
 }
 ]
 },
 {
 'id': '2',
 'menuName': '商品管理',
 'menuCode': ''
 },
 {
 'id': '3',
 'menuName': '订单管理',
 'menuCode': '30',
 'children': [
 {
 'menuName': '订单列表',
 'menuCode': '31'
 },
 {
 'menuName': '退货列表',
 'menuCode': '32',
 'children': []
 }
 ]
 },
 {
 'id': '4',
 'menuName': '商家管理',
 'menuCode': '',
 'children': []
 }
];
import myTree from './common/treeMenu.vue'
export default {
 components: {
 myTree
 },
 data() {
 return {
 theModel: myData
 }
 }
}
</script>
</div>

该文件引入了树形组件 treeMenu.vue:

<template>
 <li>
 <span @click="toggle">
 <i v-if="isFolder" class="icon" :class="[open ? 'folder-open': 'folder']"></i>
 <i v-if="!isFolder" class="icon file-text"></i>
 {{ model.menuName }}
 </span>
 <ul v-show="open" v-if="isFolder">
 <tree-menu v-for="item in model.children" :model="item"></tree-menu>
 </ul>
 </li>
</template>
 <script>
export default {
 name: 'treeMenu',
 props: ['model'],
 data() {
 return {
 open: false,
 isFolder: true
 }
 },
 computed: {
 isFolder: function() {
 return this.model.children && this.model.children.length
 }
 },
 methods: {
 toggle: function() {
 if (this.isFolder) {
 this.open = !this.open
 }
 }
 }
}
</script>
 <style>
ul {
 list-style: none;
}
i.icon {
 display: inline-block;
 width: 15px;
 height: 15px;
 background-repeat: no-repeat;
 vertical-align: middle;
}
.icon.folder {
 background-image: url(/src/assets/folder.png);
}
.icon.folder-open {
 background-image: url(/src/assets/folder-open.png);
}
.icon.file-text {
 background-image: url(/src/assets/file-text.png);
}
.tree-menu li {
 line-height: 1.5;
}
</style>
</div>

就这么简单。这篇文章还真没什么可写的,权当记录吧。

截图效果如下:

项目代码下载地址:http://xiazai.weikejianghu.com/201612/yuanma/caihg-master_jb51.rar

 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!

</div>

您可能想查找下面的文章:

  • Vue组件tree实现树形菜单
  • vue.js树形组件之删除双击增加分支实例代码
  • Vue.js 递归组件实现树形菜单(实例分享)
  • Vue.js组件tree实现无限级树形菜单

相关文章

  • 2017-05-30浅谈Vue.js
  • 2017-05-30基于Vue.js实现数字拼图游戏
  • 2017-05-30Vue.js一个文件对应一个组件实践
  • 2017-05-30Vue.js学习示例分享
  • 2017-05-30vue学习笔记之vue1.0和vue2.0的区别介绍
  • 2017-05-30又一款MVVM组件 构建自己的Vue组件(2)
  • 2017-05-30Vue.js结合bootstrap实现分页控件
  • 2017-05-30vue.js的提示组件
  • 2017-05-30基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
  • 2017-05-30详解vue-router 2.0 常用基础知识点之导航钩子

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • vue学习笔记之vue1.0和vue2.0的区别介绍
    • vue组件间通信解析
    • Vue-cli proxyTable 解决开发环境的跨域问题详解
    • Vue数据驱动模拟实现3
    • 用vue和node写的简易购物车实现
    • vue.js事件处理器是什么
    • 详解vue.js2.0父组件点击触发子组件方法
    • JavaScript的Vue.js库入门学习教程
    • Vuejs 组件——props数据传递的实例代码
    • 100行代码理解和分析vue2.0响应式架构

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有