`
wx1568844008
  • 浏览: 5404 次
文章分类
社区版块
存档分类
最新评论

Vue实现最简单的树形控件

 
阅读更多
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue Tree</title>
    <script src="http://cdn.jsdelivr.net/vue/1.0.26/vue.min.js"></script>
</head>
<style>
    .node {
        cursor: pointer;
        font-family: monospace;
        color: #333;
    }

    .node div:hover {
        background-color: antiquewhite;
    }

    .node-leaf {
        color: #999;
    }

    ul {
        padding-left: 1em;
        list-style-type: none;
    }
</style>
<body id="body">
<tree :data="treeData"></tree>
</body>


<script type="text/x-template" id="tree-node">
    <li :class="['node',node.children?'':'node-leaf']" v-for="node in data">
        <div v-if="node.children" @click="node.open = !node.open">[{{node.open?'-':'+'}}] {{node.name}}</div>
        <div v-else>[-] {{node.name}}</div>
        <ul v-if="node.children" v-show="node.open">
            <tree-node :data="node.children"></tree-node>
        </ul>
    </li>
</script>


<script>
    Vue.component('tree', {
        template: "<ul><tree-node :data='data'></tree-node></ul>",
        props: ['data'],
        components: {
            'tree-node': {
                name: "tree-node",
                template: '#tree-node',
                props: ['data']
            }
        }
    });

    new Vue({
        el: '#body',
        data: {
            treeData: [
                {open: false, name: 'hello'},
                {open: false, name: 'wat'},
                {
                    open: false,
                    name: 'child folder',
                    children: [
                        {
                            open: false,
                            name: 'child folder',
                            children: [
                                {open: false, name: 'hello'},
                                {open: false, name: 'wat'}
                            ]
                        },
                        {open: false, name: 'hello'},
                        {open: false, name: 'wat'},
                        {
                            open: false,
                            name: 'child folder',
                            children: [
                                {open: false, name: 'hello'},
                                {open: false, name: 'wat'}
                            ]
                        }
                    ]
                }
            ]
        }
    })
</script>
</html>

 

转载于:https://my.oschina.net/hellovivi/blog/706446

分享到:
评论

相关推荐

    vue2树形组件打造vue2下最简洁高效的树组件

    Vue2树形组件的设计目标是简洁高效,它允许开发者以最小的代码量实现丰富的功能。本文将深入探讨如何利用Vue2的特性来创建这样的组件。 首先,我们从基础开始。Vue2的核心理念是组件化,它鼓励将UI拆分成可复用的、...

    vue elementUI tree树形控件获取父节点ID的实例

    在使用Vue.js框架结合Element UI库构建网页时,树形控件(Tree)是一个常用的组件,它能很好地展示层级化数据。当我们需要在Element UI的Tree组件中获取被选中节点的父节点ID时,需要通过一些编程技巧来实现。本篇...

    下拉树控件组合自定义控件

    通常,它由两部分组成:一个简单的下拉按钮和一个展开后的树形结构。点击下拉按钮后,会显示一个包含多个节点(每个节点可能有子节点)的树状列表。用户可以通过展开和折叠节点来查看和选择所需的选项。 实现下拉树...

    前端树形及用法等,新手可看看。希望对初学者有帮助

    3. React、Vue等框架:利用组件化思想构建可交互的树形组件,如React-Treebeard、Vue-Tree等。 4. 数据驱动:通常将树形结构数据存储在JSON格式中,然后渲染到视图上。 操作树形结构的常见功能: 1. 新增节点:在树...

    收集的比较全的树控件

    同时,随着前端技术的发展,现在还有许多新的树形控件库,如React的react-treebeard、Vue的vue-tree等,它们提供了更现代的API和更好的性能优化,也值得开发者关注和探索。 在使用这些树控件时,开发者需要注意数据...

    vue中如何使用ztree

    在Vue实例的mounted生命周期钩子中,可以通过jQuery对zTree进行初始化操作,将数据与树形控件结合并渲染到页面上。 zTree的初始化通常使用$.fn.zTree.init方法,该方法接受三个参数:第一个参数是挂载树形控件的DOM...

    日历控件

    例如,你可以用树形结构来展示不同月份或周的事件,用户可以展开节点查看更具体的日期详情。而菜单控件则可以用来提供额外的功能选项,如设置提醒、复制事件等。 在实际应用中,日历控件的可定制性非常重要。开发者...

    简单实现仿Outlook界面PB程序

    2. 事件处理:每个控件都有自己的事件,比如Tree control的NodeClick事件,当用户点击树形结构的某个节点时,程序应响应并更新邮件列表或切换到相应视图。 3. 数据绑定:DataWindow控件需要与数据库进行交互。使用...

    Element的el-tree控件后台数据结构的生成以及方法的抽取

    在这个场景下,可以将生成el-tree数据结构的过程封装成一个单独的方法,接受节点列表作为输入,返回处理后的树形结构。这样,当需要在其他地方使用相同的数据格式时,可以直接调用此方法,避免重复代码。 以下是一...

    .net动态无限级树源代码

    在.NET中,有多种方式呈现树形结构,如ASP.NET的TreeView控件、WPF的TreeView控件或者使用前端框架如React、Vue的组件。这些控件通常都支持数据绑定,可以直接绑定上面构建的树结构数据。例如,在ASP.NET中: ```...

    jquery easyui 例子

    首先,jQuery EasyUI 包含了诸如对话框(Dialog)、表单(Form)、数据网格(DataGrid)、菜单(Menu)、下拉菜单(Combobox)、树形控件(Tree)、分页(Pager)等常见的前端组件。这些组件都是经过良好封装的,...

    jQuery EasyUI

    - **树形控件(Tree)**:展示层级结构的数据。 3. **EasyUI使用**:在HTML中,通过添加特定的类和属性,可以轻松地将普通HTML元素转换为EasyUI组件。例如,`&lt;table&gt;`标签加上`class="datagrid"`就能变成一个数据...

Global site tag (gtag.js) - Google Analytics